https://www.righto.com/2020/07/the-intel-8086-processors-registers.html
The photo shows the silicon die of the 8086 processor under a microscope. The metal layer on top of the chip is visible, with the silicon hidden underneath. Around the outside edge, bond wires connect pads on the die to the chip's 40 external pins.
The highlighted region indicates the 8086's fifteen 16-bit registers and six bytes of instruction prefetch queue.1 Registers take up a significant portion of the die, even though they are just 36 bytes in total. Due to space limitations, early microprocessors had a relatively small number of registers; in comparison, a modern processor chip has kilobytes of registers and megabytes of cache storage.2
[...] The 8086 and other chips of that era were built from a type of transistor called NMOS. These chips consisted of a silicon substrate, which was "doped" by diffusion of arsenic or boron to form transistors. Above the silicon, polysilicon wiring created the gates of the transistors and wired components together. Finally, a metal layer on top provided more wiring. (Modern processors, in comparison, use CMOS technology, which combines NMOS and PMOS transistors, and they have many metal layers.)
(Score: -1, Troll) by Anonymous Coward on Wednesday April 26, @10:44PM (3 children)
Now while I like Ken's posts and watching him on the Curious Marc youtube channel, what is with the postings of his entire blog here?
Especially a post that is almost 3 years old.
Can we stop with these please and find more up-to-date news topics
(Score: 4, Informative) by Tork on Thursday April 27, @12:22AM
Slashdolt Logic: "25 year old jokes about sharks and lasers are +5, Funny." 💩
(Score: 4, Insightful) by owl on Thursday April 27, @01:25AM
For someone who has not followed the blog, and is only just finding them now, here, the content is as new to them as the day it was published.
For those who are following the blog and have already read the posts, well, you are not one of today's lucky Ten Thousand [xkcd.com].
(Score: 5, Touché) by janrinok on Thursday April 27, @05:49AM
Let me know which submissions are yours and I will get right on it! Oh, wait......
(Score: 4, Interesting) by Rich on Thursday April 27, @12:53AM (3 children)
All the 70s American CPUs used NMOS, and well into the 80s, once the process was established (after PMOS). Meanwhile, and usually completely out of scope of the usual retro media, the Japanese turned to CMOS. I think the lines crossed about when Motorola and Hitachi exchanged the 6809 logic for the CMOS process. A look into early CMOS devices from Japan would be very interesting. My first programmable calculator was a Casio FX-502P (I still have one) which near indefinitely ran on two button cells, while a similar vintage HP-41C would burn through its big battery pack - and the Casio was faster. Also interesting would be even earlier CMOS history. For example, the Canon AE-1 camera was released in 1976 and had a small CMOS CPU inside. They must have designed it when just the 8080 and the 6800 were available. On the usual history timeline this looks like an alien technology drop.
(Score: 4, Informative) by owl on Thursday April 27, @01:19AM (2 children)
Part of the reason was that, at the time, NMOS/PMOS could switch faster, so one could build a CPU that could be clocked faster out of NMOS/PMOS than CMOS (at the time). CMOS had the advantage of extremely low power consumption, so for items where power usage was the primary driver (anything battery powered) CMOS was the tech. But for those line powered early personal computers? They wanted to clock them a 4mhz or 6mhz or 8mhz not whatever, smaller, mhz value CMOS at the time was capable of achieving.
Once CMOS was sufficiently fast to replace NMOS/PMOS at "clock rate" then its much lower power draw (i.e., lower heat production) made it the clear choice, and most CPU's designed after this tipping point was reached were built as CMOS chips. And of course, once this tipping point was reached, the ever greater funds sunk into finding better and better CMOS proceses just extended its speed lead over the prior dominant processes.
(Score: 2) by Rich on Thursday April 27, @02:18PM (1 child)
The Japanese might have had an edge there with their CMOS process. The Americans had CMOS in the form of the 4000 series (initially called COS/MOS) from RCA, and those were slower than TTL or NMOS, but there must have been be a reason that Motorola exchanged technology with Hitachi in the early 80s. As I said, the Casio FX-502P was faster than anything the Americans had with their calculators.
Beyond the process details, shipping a microprocessor controlled camera in 1976 as a final, mass market, consumer product, was super bleeding edge, especially given that they weren't part of the inner circle in the US who had the knowledge how to put all the pieces together. I wonder how the history of that looked like. And also, what the Hitachi engineers thought when they turned the 6809 into the 6309, something almost a generation ahead - and then told no one about it.
Before hitting "Submit", I dug around once more and found https://en.wikipedia.org/wiki/NEC_%CE%BCCOM_series [wikipedia.org]. Interesting read, and as I wondered, if Japan was alone in these early attempts, I found a lead to the German developed "CP3-F" which eventually became the Fairchild F8/Mostek 3870...
(Score: 3, Interesting) by owl on Thursday April 27, @02:22PM
The research and development effort that the Japanese companies put in on CMOS tech at the time likely had a huge bearing on CMOS eventually becoming faster than the NMOS tech in use by the USA companies at the time.
And of course once CMOS gained the speed edge, then all the US companies wanted in on the action, and the tipping point had been reached.
(Score: 2) by DannyB on Thursday April 27, @03:53PM (4 children)
I have a hunch about that. Maybe someone can answer.
Is it the case that each register has the logic circuitry to do: integer arithmetic, AND/OR/NOT/etc, shift/rotate? If not, then that means clock cycles must be used to transfer the register's contents to somewhere merely to do something like shift or rotate, and then transferred back for a single simple machine instruction performed upon a register.
If each register has logic [wikipedia.org] to do shift/rotate, that might be a lot of logic gates.
How often should I have my memory checked? I used to know but...
(Score: 2) by turgid on Thursday April 27, @09:34PM (1 child)
Is the logic not all in the ALU? Are the registers not just memory?
I refuse to engage in a battle of wits with an unarmed opponent [wikipedia.org].
(Score: 2) by DannyB on Friday April 28, @03:42PM
That is my first thought as well. Organize things for least amount of logic gates.
If it doesn't take extra clock cycles, then fine. And if the total settling time to set all of the gates to route the register to the ALU, let the ALU do the rotate/shift/NOT or other single operation, and then -- somehow -- change the gate configuration to send the ALU result back to the register and latch it there . . . if all that can be done in a single clock cycle, then definitely do this to save gates.
Otherwise, use more gates to make things run faster. Built a barrel shifter and a NOT operation and other single-register ops into each register.
Maybe the ALU can do all operations between registers, or upon a single register, and do so in only two clock cycles. One cycle to connect everything so that the ALU gets the input(s) from one or two different registers, and does the desired single or double register op. Then a second clock cycle to route the ALU output back to some target register -- which might be one of the source registers. I suppose 2 cycles isn't bad for any register based ALU op.
> Are the registers not just memory?
I think of the registers as extremely high speed memory, maybe even just logic gates.
How often should I have my memory checked? I used to know but...
(Score: 3, Interesting) by owl on Thursday April 27, @10:54PM (1 child)
For the 8086, the answer is no. The registers are just storage, and any 'operation' on them means their contents is sent to the ALU, the ALU performs the requested "operation" and the result from the ALU overwrites the destination register's old contents.
There are designs similar to what you are thinking of, where the "operation logic" is embedded close to the memory where the data is stored, but the 8086 is not an example of that type of design.
(Score: 2) by DannyB on Friday April 28, @03:43PM
Thanks
How often should I have my memory checked? I used to know but...