Originally posted by: pm
Wonderful...but I noticed that (with your expertise) you didn't answer my question either.
Given a pure node shrink, how is it possible NOT to reduce the die by near 50%?
What can go wrong?
The first thing that I thought of was OPC (Optical Proximity Correction) but I can think of a few others. With OPC, because fabs are not reducing the wavelength of the laser used in lithography below 193nm, they end up producing fuzzy images. To clean up those fuzzy images, they add "artifacts" (some engineers that I know call them by the more technical term "Mickey Mouse ears"), those artifacts require increased spacing between poly than the minimum that you would like to use. This happens at any other layers that you want to OPC, and it trickles up the wiring layers. If you don't space them wider than you would like to, you can end up with shorts and other issues. When you don't shrink the spacing at the same rate as you shrink the other dimensions, you end up with a less than 50% shrink.
http://en.wikipedia.org/wiki/O...l_proximity_correction
http://www.cs.berkeley.edu/~ej...ork-0/results/gennari/
That's certainly one factor, but I think others have a bigger effect. In particular, at the smaller process nodes, variability is going way up. This has a significant effect on dynamic circuits and other fancy circuits - in particular, SRAMs (register files, caches) and analog circuits (parts of the I/Os?). I'll focus on SRAMs because I don't know anything about the analog circuits.
An SRAM cell looks like
this (also see
this). A read is done by charging the wires on both "bit line" and "bit line bar" to VDD, and then raising the "word line". That turns the two access transistors on, and one of the bit lines will be pulled down. A write is done by setting one of the bitlines to VDD (depending on whether you're writing 1 or 0) and the other to 0, then raising the word line; the values on bit lines overpower the NOT gates and flip the cell. During a read, the powerful circuits that drive and "precharge" the bitlines are off, so the bitlines are controlled by the cell; during a write, the powerful drivers stay on to flip the cell.
When you're trying to write a bit cell, the NOT gates will fight against the write if the new value is different from the old one. In order for the write to actually occur, the access transistors have to be strong enough to overpower the NOT gates, and the trip point of the NOT gates (e.g. half way between 0 and VDD) have to be in the range that allows the write to happen.
When you're doing a read, you have to make sure that the cell doesn't get accidentally flipped. This could happen if the trip points of the NOT gates were very skewed. During the read, one of the NOT gates is driving a 0, but that node gets connected to a bitline that is at VDD. If the NOT gate isn't strong enough relative to the access transistor and the other NOT gate has a very low trip point, the node might bump up enough to flip the cell.
I'm sure both of those paragraphs were pretty confusing; it'd be clearer with pictures, but Linux has no good equivalent to MS Paint, so it'd take me a while to make anything decent.
Another potential problem can happen with a read. The way SRAMs work, you have many cells on each bit line. Smaller process nodes generally have leakier transistors. The access transistors leak, which can cause a problem: imagine bitlines with 1024 cells on them, and you're doing a read. Let's say there are 1023 cells storing 0, and 1 cell storing 1. You try reading that 1 cell. You would expect that "bit line" would stay at VDD, and "bit line bar" would be pulled to 0. However, you have 1023 pass transistors that, while "off", are conducting a little current. If this current is enough,
both bit lines will be pulled down, and you won't be able to figure out whether you have a 1 or a 0.
High variability is a problem because you have to come up with ratios for the transistor sizes that are robust enough to yield well, and as the variation goes up, this becomes harder. The main way to address this is by using larger transistors for these sensitive circuits - bigger transistors vary less than small ones. However, as variability gets worse, you have to use relatively larger and larger transistors in these circuits.... so they don't shrink as fast as normal logic.
"Dynamic logic" is another problem.... but I think it requires another post.
Hopefully that was clear enough to understand without sacrificing much accuracy.
That said, moving from a dry litho to an shrunk immersion litho, it may be possible actually do better than a straight linear shrink since some of the more elaborate OPC artifacting can be reduced due to the improved numerical aperature. Although it depends obviously on how the immerision litho is implemented.
Immersion definitely helps with printing; I think Intel's 45nm parts are actually manufactured using double exposures which is another method (a time-consuming one, though) of making it possible to print smaller shapes. Better printing probably (educated guess - I really don't know) helps with some sources of variation like line edge roughness, but it won't help with other sources (the fact that there are only a few hundred dopant atoms, so it doesn't take many to significantly shift the threshold voltage).