Hacker News new | past | comments | ask | show | jobs | submit login

Author here: this is a pretty obscure circuit, but hopefully it is interesting. I figured I'd start with the simple parts of the 386. Only 285,000 more transistors to go :-)



Typo: "Even though the 8086 has four clock signals" 8086 should be 386.

What if you looked at the 186, comparing it with the 8086? It should be interesting considering there is more efficient digital logic (including microcode) and possibly some interesting analog circuits for the embedded I/O...


I haven't looked at the 186, but maybe if I have time. From a quick look, it looks like the core is similar to the 8086 so the circuitry improvements can't be too major. It would be interesting to compare the microcode. And of course the 186 has the programmable interrupt controller, timers, and DMA. I'm not sure what analog circuitry you're referring to, other than the clock generator which isn't much more than inverters.


>It would be interesting to compare the microcode.

I've disassembled the microcode[1], it's similar to the 8086 but with some changes:

- No subroutines are used (effective address calculation and most of multiply/divide handled by dedicated logic). CORR is also no longer needed.

- The 'update flags' bit now has a second function: on a jump, it causes the next micro-instruction to always be executed unconditionally (saving one clock cycle in case the jump is taken)

- MOVS / INS / OUTS are optimized, using a special memory-to-memory (or I/O) transfer; the microcode for this has the 'IRQ' bit set. The address isn't loaded into IND for these anymore (tested it with LEA reg,reg) - maybe it's using the DMA controller?

- Slightly different condition codes ("CX not zero" was added for LOOP/JCXZ; "segment prefix is present" for adjusting IP on interrupted string instructions).

- Order of the 4 instructions in each 84-bit row is shuffled around for some reason

[1] see https://news.ycombinator.com/item?id=34334799 and https://forum.vcfed.org/index.php?threads/8088-8086-microcod...


I was going by memory but yes there's just a clock generator, nothing comparable to say a GPIO controller.


Great writeup!

Just FYI: the clock "divide by two" graphic has an unlabeled input into the upper-right AND gate.


Thanks, I've fixed that now.


/clk


Nice writeup!

Do you know around what time repeaters were started to be used for clock trees?

I also wonder about the two phases. Is that still commonly used?


One lecture from 2004 discusses the buffered clock tree in the Alpha 21064 (1992), while the 386 (1985) didn't use them, so that gives a time period.

As far as two phases, the lecture says that edge-triggered (rather than two-phase) is most popular (page 16). But I don't know about modern design.

Link: https://web.stanford.edu/class/archive/ee/ee371/ee371.1066/l...


Don’t know what ad network you’re using but the popups taking over the whole window and trying to trick you to navigate away from your content seem counter intuitive to content creation.


There shouldn't be popups covering the screen. What browser/device are you using to view my website?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: