On 03/02/13 07:39, Robert Wessel wrote:
> On Sat, 02 Feb 2013 22:17:29 -0800, Paul Rubin
> <no.e...@nospam.invalid> wrote:
>
>> I notice that the ram capacity (ignore program flash for now, but it
>> tends to basically be proportionate) of microcontrollers seems to grow
>> fairly continuously (say in 2x jumps) from very small (a dozen or so
>> bytes in an 8 bitter, lots of MSP430's in the 128 to 1k byte range,
>> Cortex M0's with 4k, etc.), up to about 32k (Cortex M4). Above that
>> there are a few chips with 64k or 128k, that are quite expensive, and
>> above that not much is available til you get to external DRAM which on
>> ready-made boards usually starts at 32 meg or even 64 meg (Olimex
>> Olinuxino) or 512 meg (Raspberry Pi). So there is a big jump from 32k
>> to 32 meg. It would be nice to have a low cost, single chip, 256k or 1
>> megabyte device but this doesn't seem to exist.
32-bit microcontrollers usually have significantly more ram than
8/16-bit microcontrollers in the same price class. But I haven't seen
many with more than 128 KB (Freescale's M4 series stops there) -
Freescale's MPC56xx PPC-based chips are the only ones I've used, and
they don't count as small or low-cost.
>>
>> Is there some technical reason for this, or is it just a
>> market-determined thing? I know that desktop cpu's often have megabytes
>> of sram cache, so it's certainly technologically feasible to do
>> something similar with a smaller cpu.
>
>
> On-chip ran is usually SRAM, and that's usually at least a factor of
> six time less dense than DRAM, so large on-chip memories usually
> require fairly large dies. And it's worse in practice since most
> microcontrollers are not implemented in the latest processes, and DRAM
> process are highly optimized for density, both of which multiply the
> overhead.
>
It's not actually a question of the "latest" processes, but the
"optimised" process. When making a chip design, you have a lot of
factors to consider - then number of layers, the types of layers, the
size of the geometry, etc. The layer stackups suited for DRAM, SRAM,
Flash, and low-power digital, high-speed digital, high accuracy
analogue, and low-power analogue are all different. So when a designer
wants to combine a large SRAM with a fast microcontroller on the same
die, he must choose between having the SRAM larger, slower, and more
expensive per bit - or having the microcontroller larger, slower, and
more power-consuming.
> Things like eDRAM are possible, but require considerable extra
> processing in the fab, so are largely impossible from a cost
> perspective for low cost devices.
>
> Since external DRAMs are (mostly) commodity items, the price pressure
> on the manufacturers are severe, leading to excellent price per bit.
>
> Smaller external DRAMs are certainly possible, but there's not much of
> a price break below 32MB or so.
>
> I suspect we'll see stacked dies before too long, which would provide
> the large capacity without the hassle of an external DRAM.
>
Stacked dies do exist, as do side-by-side multi-die chips. But they are
a lot more expensive to manufacture and test, and introduce big
challenges for power distribution on the die, and heat dissipation. It
is certainly a technology that is up-and-coming for memories (DRAM and
Flash), but in these chips you have multiple identical dies which makes
it much easier. I've seen articles about I/O standards and drivers
aimed at in-chip inter-die buses, but I won't hold my breath waiting for
them to appear in low-cost microcontrollers.