How CPU's work (was Re: Hi, I'm new...)
ray at arachelian.com
Sun Aug 6 21:47:23 CDT 2006
Tony Duell wrote:
> That very much depends on the CPU. If the CPU is many chips (not a single
> package) with microcode in PROMs, there's nothing to stop you desoldering
> said PROMs and reading them out. I've done that, then written a
> disassembler for the microode instructions and worked out what was going on.
True, but you don't find CPU's made of discrete logic these days, so it
makes it very difficult to get at the microcode.
> And some CPUs, the PERQ being probably the most common example, load
> their microcode from disk at power-on. In which case you might even get a
> mcirocode assembler and disassember as standard OS tools. If not, you can
> write them.
This is one machine I've been wishing for, for quite some time. Were
there any emulators of these? Are there enough docs, schematics and
copies of the software online somewhere? Would be sad to lose this
machine to the ravages of time.
> This is rather a higher level tham I was considering it. I was thinking
> more along the lines of 'Decoder U55 decodes the 3-bit field consisting
> of micorocode bits 23-25. Output 4 of this decoder enables OR gate U27c
> which passes the delayed clock to the clock input of the D-type U71a.
> This stores the carry output of the ALU, and acts as a carry flag'
> Yes, I do often consider CPUs at that level
Wow. You da man! ;-)
> The problem is that most books describe the simple parts (gates,
> flip-flops), then the final result (CPU, at the level of 'fetch an
> instruction, decode it, increment PC'), but miss out the bit in between.
> Exactly how you can link up gates and FFs to make a CPU.
I do recall that my college book on computer architectures actually went
into this detail. I'll go and dig it up if I still have it if you'd
like to know its title.
> The PERQ has no ROM in the memory map (and no, there is no frontpanel
> where you toggle in a boot loader by hand). What there is is a little
> microcode PROM that overlays the bottom part of the microcode RAM. This
> PROM contains enough microode to read the boot sector from disk into the
> mcirocode store (said boot sector of course contains microcode), that
> then reads in some more microcode, which reads in the OS into user RAM.
Sweet! Reminds me of the Xerox Star where it uses an 8085 to load code
into a custom made bit-sliced microcoded CPU, and even allows individual
applications to roll their own microcode...
More information about the cctalk