Groups | Search | Server Info | Login | Register
Groups > comp.os.linux.misc > #85222
| 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> |
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 | Next — Previous in thread | Next in thread | Find similar
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