Google-Apps
Hauptmenü

Post a Comment On: Ken Shirriff's blog

"A look at the die of the 8086 processor"

17 Comments -

1 – 17 of 17
Blogger Terry Smith said...

Wow Awesome thanks!

June 17, 2020 at 11:04 AM

Blogger Kevin said...

Fantastic work Ken. Thank you for taking the time to write this up. I was a teenager in the 70s and watched the development of the personal computer up close. Your articles are a fun romp through those days

June 17, 2020 at 11:56 AM

Anonymous Ken Rose said...

Always fascinating. Thanks.

A request for future chips: I would love to see a teardown of a 68000

June 17, 2020 at 11:22 PM

Anonymous Mark Jeronimus said...

I don't know what you mean by "6502 and Z-80 didn't use microcode" because they have a microcode ROM and it's one of the things that allows 'unofficial' opcode tricks.

June 18, 2020 at 9:59 AM

Blogger The Happy Engineer said...

No.6502 does not have microcode. A logic array is decoding the instructions and unofficial opcodes are there as a byproduct of the array not covering all possible combinations.

June 18, 2020 at 10:57 AM

Anonymous Anonymous said...

"infamous segment registers".
Oh yes. I worked as a lowly student writing 8086 code in the 80's. It took maybe three attempts for my boss to make me understand the concept. I just couldn't believe something so programmatically ugly actually got built in silicon.
Later I became a 68000 man (much, much x millions) nicer to program - but actually to my chagrin, not really faster. Of course we all know now that ARM blew them both out of the water...
I still occasionally work in x64 assembler, and it isn't elegant is it, but luckily those segment registers are long gone... Except they aren't I believe I've seen them in gdb - kernel level stuff perhaps? I tend to do application level.
Anyway, thanks for the most enjoyable article, I truly love reading these.

Oh, and Ken Rose above, suggest micrographs of the 68000. Please!
Regards.

June 18, 2020 at 1:06 PM

Anonymous Anonymous said...

Great article. I am a totally noob in electronics (just finished nandgame.com HAHA ) but can you enlighten us with further details of the layout of the microcode? Where are the 512 different instructions or the 21 instruction length visible? I see only 56x84 "thingies" and above some other structures, but I cannot bind this together to find these 512/21 numbers.. or am I totally wrong here?

Best regards,
Peter

July 10, 2020 at 9:34 AM

Blogger Nick Alcock said...

In 64-bit long mode, there are two segment registers left: FS and GS. They're usually used for thread-local storage, per-CPU data or similar things that actually *need* the addend stuff that segment registers give you (on Linux, FS is usually used for per-thread data in userspace and GS for per-CPU data in kernelspace, but this is just one OS and others can do other things with them). The other four "historical" segment registers are hardwired to base 0, limit 2^64.

But of course all the machinery to handle them is still there on the silicon -- it has to be, because in non-long mode all that stuff still works. Of course on modern processors it doesn't work internally anything like the way it worked on the 8086: the segment registers are indexes into tables which eventually yield a data structure containing the high bits of the address, limit, privilege info etc etc etc. This is *still true even in real mode*: it's just that on transition to real mode the operating system (or, at boot, the BIOS/firmware) nails the address, limit etc to 8086-compatible values. You can use other values instead, which gives you 'unreal mode' (which is really 'half of the way to virtual 8086 mode', since this trick is a largish part of how virtual 8086 mode worked internally). There is astonishingly little difference between real and protected mode from the perspective of a 386+'s operation. Long mode makes far larger changes.

July 15, 2020 at 12:24 PM

Blogger Ken Shirriff said...

Anonymous: the microcode is logically 512x21, but it is constructed 4 words wide so it is physically 128x84. (A long skinny ROM is less efficient to build than one that is closer to square.) The 84 rows you see are 21*4. Unless you look closely, you'll see 64 structure, not 128, because each pair of transistors shares a ground line. I plan to write about the microcode in detail at some point.

July 18, 2020 at 3:03 PM

Blogger Manish Dixit said...

Dear Ken, Is it possible to capture the Image of Die, without damaging the package thru X-Ray, MRI, or any other advanced Technologies. I can see some black mark on the image, Are they burnt transistors?

July 19, 2020 at 9:30 PM

Blogger Shai Berger said...

Great work!

August 26, 2020 at 6:47 AM

Blogger Unknown said...

@Happy Engineer: You answered the guy saying Z80 and 6502 have microcode by stating the 6502 does not. Does that meat that you somehow view the PLA structures used in the Z80 as microcode?

Best Regards
/Sven Ekeberg

September 4, 2020 at 11:17 AM

Blogger Unknown said...

Thank you for your very interesting posts Ken!! I have always been curious about history of CPUs and your work is really helpful!

November 19, 2020 at 12:57 PM

Anonymous can said...

Thanks for this great post.

December 31, 2020 at 11:17 PM

Blogger Unknown said...

Wonderful and very illustrative article, Ken. Great work.

November 8, 2021 at 8:49 AM

Blogger Kilian Hekhuis said...

I was wondering how the instruction pointer is incremented. I don't think it can use the ALU, as it needs to be incremented first, before e.g. a conditional jump that needs the current IP to be incremented already. And looking at the instruction timing, it also seems the ALU can't be involved? Still you'd need some kind of ALU-like structure, as you need a variable constant added (since variable instruction length).

December 5, 2021 at 1:45 PM

Blogger 黄禄轩 said...

I have built some part of 8086 in minecraft, and I found there is too many ways to achieve the same behavior as the real chip. I made some proper guess according to the uCode ROM and the timing of the real chip, and it can run exactly as same as the real chip, but I still perfer to make the design as close to the real chip as I can. So can you find some way to take some photo of polysilicon around group decoder ROM and ALU ROM?

December 17, 2021 at 10:49 AM

You can use some HTML tags, such as <b>, <i>, <a>

Comment moderation has been enabled. All comments must be approved by the blog author.

You will be asked to sign in after submitting your comment.
Please prove you're not a robot