76

The two killer reasons are yield, and heat. Yield. Every time you do a process step, you get less than 100% perfection. Let's say you get 99% perfection per step. In a process with 20 steps, you would be down to 82%. In a process with 1000 steps, you would be down to 43 ppm, 43 successful builds for every million wafers started. Heat. Our existing designs ...


68

There are other factors that contribute to the speed. Memory: Actual performance is often limited by memory latency. Intel CPUs have large caches to make up for this. Microcontrollers usually don't. Flash memory is much slower than DRAM. Power consumption: This is often a big deal in embedded applications. Actual 200 MHz Intel CPUs consumed more than 10 ...


68

See this extremely detailed account of the PC boot sequence: http://www.drdobbs.com/parallel/booting-an-intel-architecture-system-par/232300699?pgno=2 Since no DRAM is available at this point, code initially operates in a stackless environment. Most modern processors have an internal cache that can be configured as RAM to provide a software stack. ...


52

On PIC and dsPIC chips, I have observed the following causes of unexpected reset. Hardware: Reset pin driven low or floating. Check the obvious stuff first! ESD coupling into the reset pin. I've seen this happen when completely unrelated equipment gets turned on on the same desk. Make sure there's enough capacitance on the reset pin, possibly as much as 1 ...


50

First, as Keelan's comment and Turbo J's answer point out, the measurement was 113,093 Dhrystone MIPS not native MIPS. The Ivy Bridge microarchitecture of the i7 3630QM can only commit 4 fused µops per cycle, though it can begin execution of 6 µops per cycle. (The number of fused µops in a trace of code is roughly equal to the number of instructions; some ...


40

Wafers are extremely sensitive during manufacture, because if any dust or dirt particle settles on it between any process steps, then the following process steps will fail on the contaminated spot. Once manufacture is finished, and the chip receives its last layer, dust will no longer bother it. I would venture a guess that desktop CPUs which have thermal ...


36

An illustrative example or two may help here. Take a look at the following hypothetical circuit: simulate this circuit – Schematic created using CircuitLab Suppose to start both A and B are high (1). The output of the AND is therefore 1, and since both inputs to the XOR are 1, the output is 0. Logic elements don't change their state instantly - ...


35

There are several factors: high performance micro-architectures use register renaming. That is, the number of physical registers is higher than the number of architecturally visible registers and they are able to track independent uses of them. doubling the number of registers does not double the performance. ISTR (from Computer architecture, A ...


34

One use of NOP (or NOOP, no-operation) instruction in CPUs and MCUs is to insert a little, predictable, delay in your code. Although NOPs don't perform any operation, it takes some time to process them (the CPU has to fetch and decode the opcode, so it needs some little time do do that). As little as 1 CPU cycle is "wasted" to execute a NOP instruction (the ...


34

All options are wrong. Maximum number of (unique) opcodes a processor can execute is not limited by bus width. One may think that a CPU with 12-bit data bus would probably be designed to be able to fit its instruction in a single data word so that it can read instructions in one go - because 2^12 = 4096 opcodes is more than enough for most purposes. But, ...


29

Neither: it can be considered a single-board computer where the main CPU is a system-on-chip.


26

A transistor (FET, in modern ICs) never switches instantly from full OFF to full ON. There is a period while it's turning on or off where the FET acts like a resistor (even when fully ON it still has a resistance). As you know, passing a current through a resistor generates heat (\$P=I^2R\$ or \$P=\frac{V^2}{R}\$). The more the transistors switch the more ...


26

A major underlying technical reason for the slow speeds is that cheap/small MCUs only use on-chip flash memory for program storage (i.e. they don't execute from RAM). Small MCUs generally don't cache program memory, so they always need to read an instruction from flash before they execute it, every cycle. This gives deterministic performance and #cycles/...


24

Why do people ride a bicycle or a small motorbike, when you have a Formula 1 car? Surely it must be better to drive say 300 km/h and get everywhere instantly? To put it simply, there's no need to be faster than they are. I mean, sure there is a bit and faster microcontrollers do enable some things, but what are you going to do in say a vending machine that ...


23

All current flow in anything that isn't a superconductor generates heat. In chips, it's mostly flowing in aluminium "metal" layers (why not copper? Nasty chemical interaction with other parts of the silicon, it turns out). What causes current to flow? Every time a transistor changes state, this can be modeled as a capacitor (the FET gate of the driven logic ...


23

Actually crystal oscillators can easily go up to 10's of MHz. Above that in most cases a PLL (Phase Locked Loop) is used, which is an oscillator that is not very accurate in itself, but can be tuned (its frequency can be adjusted somewhat). The frequency of this high-frequency oscillator is divided by a suitable factor (dividing a signal by a power of 2 is ...


23

If the compiler writers put some effort into optimizing it for that target, it will at least make some use of the special DSP instructions / architecture. But for ultimate performance it will never be as good as hand-tuned assembly. It might be plenty good enough, though - depends on your application. Other alternatives include: Write the majority of ...


23

This is done using a device called a phase-locked loop, or PLL. Here is a block diagram of a basic PLL: simulate this circuit – Schematic created using CircuitLab The oscillator on the motherboard does not run at the CPU clock frequency, instead it runs at a frequency on the order of 100 MHz. This oscillator serves only as a known, stable reference ...


21

A microprocessor: is typically found in a desktop PC or laptop and contains a CPU and an external memory interface plus various I/O buses to connect to the outside world such as SPI, I2C, UART, USB, LCD and others. A microprocessors will also have an external crystal to provide a clock. Most microprocessors have no read-only memory on the chip; instead ...


21

I feel a lot of these answers are not exactly hitting on the core question. The micro-controller has a clock simply because it executes (and is driven by) sequential logic. In digital circuit theory, sequential logic is a type of logic circuit whose output depends not only on the present value of its input signals but on the sequence of past inputs, the ...


21

Premature optimization is the root of all evil. - Donald Knuth When you find that you don't get enough performance from your code, profile your program first, find the bottlenecks, analyze your performance requirements, and only then start doing optimizations. Writing assembly code is last resort. My question is if I just program in C, wouldn't the ...


21

It's always better to have your algorithm implemented in a higher-level language (which C is compared to assembly), even if you plan to implement everything in assembly in the end. chances are, you won't even need assembly. If the code generated by your compiler meets your design goals, your job is done. if not, you won't be starting your assembly coding ...


20

If there is a single memory interface, there would be hardware to arbitrate between requests. Typically a processor would be given priority over I/O without starving I/O, but even with I/O always having priority the processor would have some opportunities to access memory because I/O tends to have lower bandwidth demands and to be intermittent. In addition, ...


18

You are correct that the CPU cannot be accessing the memory during a DMA transfer. However there are two factors which in combination allow apparent parallel memory access by the CPU and the device performing the DMA transfer: The CPU takes multiple clock cycles to execute an instruction. Once it has fetched the instruction, which takes maybe one or two ...


18

Something not mentioned by the other answers is that it's not only the chip itself that's so sensitive to dust. It's also the lithography plates used to print the resist layers for each stage of the process. Image from Wikipedia Incredibly advanced optics are used to project light through these essentially "film negatives" onto the resist layer on the ...


18

Your DSP will be advertised with a maximum sustained MACs, assuming all the pipes are filled. That is obviously an upper limit to what can be achieved. You know how many MACs your filters and other processing will take, from your analysis. Aim to have the first at least twice the second, as you will not be able to keep the DSP core running at maximum. Just ...


17

If you count the power pins on the IC, and the supply decoupling caps of the same value, you'll probably find a 1:1 correspondence. This indicates you are expected to place one per power pin, as close as practical to the pin, to minimise the effects of trace inductance.


17

A passivation layer is the final step, excluding the atmosphere. This layer is formed by exposing the wafer to high temperature oxygen (low growth rate) or steam (high growth rate). Result is silicon-dioxide, 1,000s of Angstroms thick. The edges of the integrated circuit are usually protected against ionic intrusion, with a "seal ring" where the metals and ...


17

Heat removal is the issue. Already some chips have higher energy density than a nuclear reactor. Consider a hair_drier ---- 1,500 watts with a air_blast fan to cool the tungsten coils. And the coils glow dull red.


16

Short answer: managers want a simple, testable, PROOF of function before committing to millions (or more) dollars to a design. Current tools, just do not give asynchronous designs those answers. Microcomputers and microcontrollers typically utilize a clocking scheme to insure timing control. All process corners have to maintain timing across all voltage, ...


Only top voted, non community-wiki answers of a minimum length are eligible