<br> [MAS.865](../../index.html) > [Programming](../index.html) > MPU ##MPU Microprocessor is a CPU on a single chip.<br> CPU (Central Processing Unit) is an integrated circuit within a computer that carries out instructions.<br> <p align="center"> <img src="cpu0.gif" width="50%" height="50%"> <br> Relationship between the elements of the CPU, input and output, and storage. </p> <p align="center"> <img src="cpu1.gif" width="50%" height="50%"> <br> Block diagram of a basic uniprocessor-CPU computer. Black lines indicate data flow, whereas red lines indicate control flow; arrows indicate flow directions. </p> <p align="center"> <img src="chip_labeled.png" width="50%" height="50%"> <br> [Overview of the ARM1 chip](http://www.righto.com/2015/12/reverse-engineering-arm1-ancestor-of.html) </p> ##Types of MPUs ####Depending on word size: <ul> <li>8bit</li> <li>16bit</li> <li>32bit</li> <li>...</li> </ul> ####Depending on purpose: <ul> <li>general</li> <li>floating point calculations</li> <li>image processing</li> <li>...</li> </ul> ####Depending on ISA (Instruction Set Architecture): #####RISC(Reduced Instruction Set Computing) => Apple iPod, AVR Arduino, ARM, Nintendo <ul> <li>emphasis on Software</li> <li>large number of simply encoded and short instructions in a pipeline</li> <li>all instructions are similar in length and execution time</li> <li>uses low cycles per second and single-clock</li> <li>uses RAM to store assembly level instructions </li> <li>used in portable devices because it is power efficient and suited for simple programs</li> </ul> #####CISC(Complex Instruction Set Computing) => Intel and x86 (32-bit and 64-bit) family <ul> <li>emphasis on Hardware</li> <li>small number of variable complexity instructions</li> <li>all instructions can be different in length and execution time</li> <li>uses high cycles per second and multi-clock</li> <li>used in intensive workstations and cloud computing because it better handles complex programs</li> </ul> <br> The execution time<br> <p align="center"> <img src="execution_time.png"> <br> </p> of a program depends on<br> N: total number of instructions in the program.<br> CPI: average number of cycles in each instruction.<br> CT: clock cycle time.<br> <p align="center"> <img src="risc_cisc_table.png"> <br> </p> The CISC instructions are closer to the high-level languages, while the RISC instructions are closer to the signel-step micro-instructions.<br> <p align="center"> <img src="risc_cisc.gif"> <br> </p>