Groups | Search | Server Info | Login | Register


Groups > comp.os.linux.misc > #85222

Re: CPU architecture (was Re: Mercury)

From Rich <rich@example.invalid>
Newsgroups comp.os.linux.misc
Subject Re: CPU architecture (was Re: Mercury)
Date 2026-04-03 03:45 +0000
Organization A noiseless patient Spider
Message-ID <10qnd5j$1kfdg$2@dont-email.me> (permalink)
References (7 earlier) <8f2cnUqvT4JIKFD0nZ2dnZfqnPgAAAAA@giganews.com> <njt0amx477.ln2@Telcontar.valinor> <8f2cnUWvT4L8SFD0nZ2dnZfqnPidnZ2d@giganews.com> <20260402104302.00007623@gmail.com> <hz6dnYfHp55HJlP0nZ2dnZfqnPSdnZ2d@giganews.com>

Show all headers | View raw


c186282 <c186282@nnada.net> wrote:
> On 4/2/26 13:43, John Ames wrote:
>> On Wed, 1 Apr 2026 22:32:57 -0400
>> c186282 <c186282@nnada.net> wrote:
>> 
>>>> Nobody can explain or understand a modern CPU from scratch.
>>>>
>>>> And I could not write the explanation of a simple CPU, either. I
>>>> have forgotten many things.
>>>
>>> SOME people "get it" - but very few. It's like asking Mary-Lou how
>>> the metal in her car engine is made/machined and why which parts are
>>> as big/thick/shaped as they are. The engineering just gets deeper and
>>> deeper.
>> 
>> The basics aren't really that complex; a Platonic CPU is just a state
>> machine sequencing the operation of an ALU and register file according
>> to a rules table, with some of its outputs directing the flow from one
>> state to another, and the clock latching the prior out-state to become
>> the in-state for the next operation, like a two-stroke engine.
>> 
>> while (!halt) {
>>      state = rulesTable[state];
>> }
> 
> 
>   That's the logical, shorthand, ex.
> 
>   Now how do you wire up transistors to mechanically
>   DO all that  ? 

If you wanted to do this, one way would be by what could reasonably be 
called "recursive design".  Lets say you wanted to wire up a simple 
8-bit binary counter (a relatively simple design where on each clock 
pulse, it "increments" as if it had added one to the prior value).

You start by designing the counter at the flip-flop level (without 
worrying about what will go inside each flip-flop).  Actually reality 
here is you'd probably just copy an existing design since this is a 
basic circuit that would be in most digital logic textbooks.

Now, armed with your flip-flop level design, you then move down a level 
(recurse) and design the innards of each flip-flop.  Here you pick the 
logic gates (AND, OR, XOR, NOT) that make up the internals of each 
flip-flop.  Since a simple binary counter is going to be a gang of 
identical flip-flops, you do this once for one, and replicate N times 
(N being the number of flip-flops).

Next, for each unique logic gate used as the inside of a flip-flop, you 
recurse again and design the transistor layout of the innards of that 
logic gate.  You do this once per each type used (AND, OR, XOR, NOT) 
and replicate the transistor design across each gate inside each 
flip-flop.

Then, you sit down with your box of 2n222a's and your giant perf-board 
and start layout out your 2n222a binary counter layout.  And you likely 
end up doing the same thing you did with the design.  The arrangement 
of transistors (and supporting passives) that make up each AND gate is 
identical, and you just "stamp" it out on the perf board when you need 
it.  Same for each OR, XOR or NOT gate (if you used any of those).  
Each flip-flop will end up being identical, with the transistors making 
up each gate positioned identically inside the "area" on the perf board 
that will be each flip-flop.  At which point it is rather a mechanical 
process of bend legs, insert device, solder, repeat, identically, for 
X*Y*Z times (X number of transistors per gate, Y number of gates per 
flip-flop, Z number of flip-flops).

If you find any closer up photos of these finished "transistor level" 
items, look closely at the layout.  You'll quickly see patterns in the 
layout.  Those patterns are the gates, or flip-flops, that make up the 
design.

>   If I send you a giant box of 2n222a's and a giant perf-board could 
>   you just start doing all the wiring ?

With the free time to do so, yes, it's just a mechanical positioning 
exercise of replicating the same identical small sub-circuits over and 
over across the perf board.  The 'magic' is in knowing what "small 
sub-circuits" to replicate, and that comes from starting where you want 
to be and slowly working your way down the abstraction layers.

>   Some time back I did see an article about a guy who
>   built a Z-80 from discrete components - took up
>   three walls of his house. I guess HE knew how to
>   put it all together, but .......

And spent a lot of time doing so.

Back to comp.os.linux.misc | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Re: Mercury rbowman <bowman@montana.com> - 2026-03-31 02:30 +0000
  Re: Mercury "Carlos E.R." <robin_listas@es.invalid> - 2026-03-31 12:58 +0200
    Re: Mercury rbowman <bowman@montana.com> - 2026-03-31 20:10 +0000
      Re: Mercury Charlie Gibbs <cgibbs@kltpzyxm.invalid> - 2026-03-31 22:03 +0000
        Re: Mercury rbowman <bowman@montana.com> - 2026-04-01 04:37 +0000
        Re: Mercury The Natural Philosopher <tnp@invalid.invalid> - 2026-04-01 13:26 +0100
          Re: Mercury c186282 <c186282@nnada.net> - 2026-04-01 09:03 -0400
            Re: Mercury Charlie Gibbs <cgibbs@kltpzyxm.invalid> - 2026-04-01 17:58 +0000
              Re: Mercury c186282 <c186282@nnada.net> - 2026-04-01 15:16 -0400
                Re: Mercury "Carlos E.R." <robin_listas@es.invalid> - 2026-04-01 21:57 +0200
                Re: Mercury c186282 <c186282@nnada.net> - 2026-04-01 20:18 -0400
                Re: Mercury "Carlos E.R." <robin_listas@es.invalid> - 2026-04-02 03:33 +0200
                Re: Mercury c186282 <c186282@nnada.net> - 2026-04-01 22:32 -0400
                Re: Mercury "Carlos E.R." <robin_listas@es.invalid> - 2026-04-02 13:51 +0200
                Re: Mercury c186282 <c186282@nnada.net> - 2026-04-02 13:33 -0400
                Re: Mercury Rich <rich@example.invalid> - 2026-04-03 00:21 +0000
                Re: Mercury c186282 <c186282@nnada.net> - 2026-04-02 22:51 -0400
                Re: Mercury Rich <rich@example.invalid> - 2026-04-03 03:21 +0000
                Re: Mercury "Carlos E.R." <robin_listas@es.invalid> - 2026-04-03 14:38 +0200
                Re: Mercury rbowman <bowman@montana.com> - 2026-04-03 06:22 +0000
                Re: Mercury Bobbie Sellers <bliss-sf4ever@dslextreme.com> - 2026-04-03 07:50 -0700
                Re: Mercury c186282 <c186282@nnada.net> - 2026-04-03 11:13 -0400
                Re: Mercury "Carlos E.R." <robin_listas@es.invalid> - 2026-04-03 14:33 +0200
                Re: Mercury c186282 <c186282@nnada.net> - 2026-04-03 11:06 -0400
                Re: Mercury Rich <rich@example.invalid> - 2026-04-03 16:51 +0000
                Re: Mercury c186282 <c186282@nnada.net> - 2026-04-03 14:47 -0400
                CPU architecture (was Re: Mercury) John Ames <commodorejohn@gmail.com> - 2026-04-03 12:57 -0700
                Re: CPU architecture (was Re: Mercury) c186282 <c186282@nnada.net> - 2026-04-03 22:45 -0400
                Re: CPU architecture (was Re: Mercury) Rich <rich@example.invalid> - 2026-04-04 03:27 +0000
                Re: CPU architecture (was Re: Mercury) rbowman <bowman@montana.com> - 2026-04-04 04:57 +0000
                CPU design "Carlos E.R." <robin_listas@es.invalid> - 2026-04-03 22:00 +0200
                Re: CPU design c186282 <c186282@nnada.net> - 2026-04-03 16:29 -0400
                Re: CPU design "Carlos E.R." <robin_listas@es.invalid> - 2026-04-04 13:20 +0200
                Re: CPU design c186282 <c186282@nnada.net> - 2026-04-04 13:57 -0400
                Re: CPU design "Carlos E.R." <robin_listas@es.invalid> - 2026-04-04 22:18 +0200
                Re: CPU design Rich <rich@example.invalid> - 2026-04-05 03:44 +0000
                Re: CPU design "Carlos E.R." <robin_listas@es.invalid> - 2026-04-05 13:58 +0200
                Re: CPU design c186282 <c186282@nnada.net> - 2026-04-05 17:19 -0400
                Re: CPU design The Natural Philosopher <tnp@invalid.invalid> - 2026-04-05 12:42 +0100
                Re: Mercury Rich <rich@example.invalid> - 2026-04-03 21:57 +0000
                Re: Mercury rbowman <bowman@montana.com> - 2026-04-03 17:54 +0000
                Re: Mercury c186282 <c186282@nnada.net> - 2026-04-03 22:29 -0400
                Re: Mercury rbowman <bowman@montana.com> - 2026-04-04 04:58 +0000
                Re: Mercury The Natural Philosopher <tnp@invalid.invalid> - 2026-04-04 13:30 +0100
                Re: Mercury c186282 <c186282@nnada.net> - 2026-04-04 13:46 -0400
                Re: Mercury rbowman <bowman@montana.com> - 2026-04-04 19:22 +0000
                Re: Mercury Robert Riches <spamtrap42@jacob21819.net> - 2026-04-04 20:39 +0000
                Re: Mercury c186282 <c186282@nnada.net> - 2026-04-04 18:10 -0400
                Re: Mercury rbowman <bowman@montana.com> - 2026-04-05 03:31 +0000
                Re: Mercury c186282 <c186282@nnada.net> - 2026-04-05 17:13 -0400
                Re: Mercury Rich <rich@example.invalid> - 2026-04-05 03:59 +0000
                Re: Mercury rbowman <bowman@montana.com> - 2026-04-04 19:09 +0000
                Re: Mercury Rich <rich@example.invalid> - 2026-04-04 14:26 +0000
                Re: Mercury c186282 <c186282@nnada.net> - 2026-04-04 13:50 -0400
                Re: Mercury "Carlos E.R." <robin_listas@es.invalid> - 2026-04-03 21:55 +0200
                Re: Mercury The Natural Philosopher <tnp@invalid.invalid> - 2026-04-04 13:40 +0100
                Re: Mercury Rich <rich@example.invalid> - 2026-04-04 14:32 +0000
                Re: Mercury "Carlos E.R." <robin_listas@es.invalid> - 2026-04-04 18:44 +0200
                Re: Mercury rbowman <bowman@montana.com> - 2026-04-04 19:02 +0000
                Re: Mercury The Natural Philosopher <tnp@invalid.invalid> - 2026-04-05 12:17 +0100
                Re: Mercury "Carlos E.R." <robin_listas@es.invalid> - 2026-04-05 13:59 +0200
                Re: Mercury The Natural Philosopher <tnp@invalid.invalid> - 2026-04-05 13:10 +0100
                Re: Mercury "Carlos E.R." <robin_listas@es.invalid> - 2026-04-05 19:50 +0200
                Re: Mercury rbowman <bowman@montana.com> - 2026-04-05 22:02 +0000
                Re: Mercury Bobbie Sellers <bliss-sf4ever@dslextreme.com> - 2026-04-05 17:01 -0700
                Re: Mercury rbowman <bowman@montana.com> - 2026-04-06 02:05 +0000
                Mandriva was Re: Mercury Bobbie Sellers <bliss-sf4ever@dslextreme.com> - 2026-04-05 21:18 -0700
                Re: Mandriva was Re: Mercury rbowman <bowman@montana.com> - 2026-04-06 16:02 +0000
                Re: Mandriva was Re: Mercury Rich <rich@example.invalid> - 2026-04-06 18:09 +0000
                Re: Mandriva was Re: Mercury rbowman <bowman@montana.com> - 2026-04-07 02:15 +0000
                Re: Mandriva was Re: Mercury Bobbie Sellers <bliss-sf4ever@dslextreme.com> - 2026-04-06 14:53 -0700
                Re: Mercury The Natural Philosopher <tnp@invalid.invalid> - 2026-04-06 11:01 +0100
                CPU architecture (was Re: Mercury) John Ames <commodorejohn@gmail.com> - 2026-04-02 10:43 -0700
                Re: CPU architecture (was Re: Mercury) The Natural Philosopher <tnp@invalid.invalid> - 2026-04-02 19:44 +0100
                Re: CPU architecture (was Re: Mercury) c186282 <c186282@nnada.net> - 2026-04-02 15:06 -0400
                Re: CPU architecture (was Re: Mercury) The Natural Philosopher <tnp@invalid.invalid> - 2026-04-03 10:32 +0100
                Re: CPU architecture (was Re: Mercury) rbowman <bowman@montana.com> - 2026-04-03 23:58 +0000
                Re: CPU architecture (was Re: Mercury) "Carlos E.R." <robin_listas@es.invalid> - 2026-04-03 15:11 +0200
                Re: CPU architecture (was Re: Mercury) c186282 <c186282@nnada.net> - 2026-04-02 14:56 -0400
                Re: CPU architecture (was Re: Mercury) John Ames <commodorejohn@gmail.com> - 2026-04-02 15:31 -0700
                Re: CPU architecture (was Re: Mercury) c186282 <c186282@nnada.net> - 2026-04-02 22:46 -0400
                Re: CPU architecture (was Re: Mercury) rbowman <bowman@montana.com> - 2026-04-03 07:03 +0000
                Re: CPU architecture (was Re: Mercury) The Natural Philosopher <tnp@invalid.invalid> - 2026-04-03 11:25 +0100
                The New Feudalism Lars Poulsen <lars@beagle-ears.com> - 2026-04-03 06:33 -0700
                Re: CPU architecture (was Re: Mercury) John Ames <commodorejohn@gmail.com> - 2026-04-03 10:47 -0700
                Re: CPU architecture (was Re: Mercury) Richard Kettlewell <invalid@invalid.invalid> - 2026-04-03 10:04 +0100
                Re: CPU architecture (was Re: Mercury) The Natural Philosopher <tnp@invalid.invalid> - 2026-04-03 12:29 +0100
                Re: CPU architecture (was Re: Mercury) c186282 <c186282@nnada.net> - 2026-04-03 10:35 -0400
                Re: CPU architecture (was Re: Mercury) rbowman <bowman@montana.com> - 2026-04-03 07:00 +0000
                Re: CPU architecture (was Re: Mercury) The Natural Philosopher <tnp@invalid.invalid> - 2026-04-03 11:27 +0100
                Re: CPU architecture (was Re: Mercury) John Ames <commodorejohn@gmail.com> - 2026-04-03 13:54 -0700
                Re: CPU architecture (was Re: Mercury) "Carlos E.R." <robin_listas@es.invalid> - 2026-04-03 22:54 +0200
                Re: CPU architecture (was Re: Mercury) Rich <rich@example.invalid> - 2026-04-03 03:45 +0000
                Re: CPU architecture (was Re: Mercury) Charlie Gibbs <cgibbs@kltpzyxm.invalid> - 2026-04-03 18:10 +0000
                Re: CPU architecture (was Re: Mercury) c186282 <c186282@nnada.net> - 2026-04-03 15:04 -0400
                Re: CPU architecture (was Re: Mercury) The Natural Philosopher <tnp@invalid.invalid> - 2026-04-03 10:13 +0100
                Re: CPU architecture (was Re: Mercury) Rich <rich@example.invalid> - 2026-04-03 00:29 +0000
                Re: Mercury rbowman <bowman@montana.com> - 2026-04-02 19:50 +0000
                Re: Mercury Charlie Gibbs <cgibbs@kltpzyxm.invalid> - 2026-04-02 20:53 +0000
                Re: Mercury The Natural Philosopher <tnp@invalid.invalid> - 2026-04-03 10:51 +0100
                Re: Mercury The Natural Philosopher <tnp@invalid.invalid> - 2026-04-02 11:15 +0100
            Re: Mercury rbowman <bowman@montana.com> - 2026-04-02 00:12 +0000
            Re: Mercury rbowman <bowman@montana.com> - 2026-04-02 00:28 +0000
              Re: Mercury c186282 <c186282@nnada.net> - 2026-04-01 21:39 -0400
                Re: Mercury "Carlos E.R." <robin_listas@es.invalid> - 2026-04-02 14:17 +0200
      Re: Mercury "Carlos E.R." <robin_listas@es.invalid> - 2026-04-01 14:47 +0200

csiph-web