**Arithmetic Logic Unit [ALU]** **-** carries out arithmetic operations: Addition, Subtraction, Multiplication, Division and Shift operations. As well as logical operations: Not, AND, OR and comparison operators \[<,>,>=,<=,==\]
**Control Unit -** directs operations; sends out signals to control how data moves around; manages the clock.
**Cache -** very fast, costly memory which stores recently x frequency used instructions and data
**Registers -** small, quick memory which can temporarily store a single instruction or piece of data
**Instructions have… -** two parts; opcode, which is the part decoded by the computer and the operand
**LMC -** little man computer
**Accumulator -** this is a register that can store the results of calculation in the ALU; it can store data that is inputted by the user and data to be outputted
**Program counter -** this is a register that holds the address of the instruction to be executed next and is automatically incremented (increased) at the end of each Fetch-Decode-Execute cycle
**Memory address register -** this is a register which holds the address of the current instruction to be fetched from memory and it can also hold the address in memory to which data is to be transferred.
**Memory data register -** this is a register which holds the data transferred to memory
**Fetch-Decode-Execute cycle -** value in PC is copied into MAR **--** PC is incremented by 1 **--** the instruction is etched from the memory location specified in the MAR **--** the instruction that is fetched is placed into the MDR **--** the instruction is decoded then executed
**Clock speed -** the clock regulates how many fetch decode execute cycles will run per second e.g. a clock speed of 4.10 GHz means 4.1\*10^9 4100000000 Fetch-Decode-Execute cycles per second. Increasing the **clock rate** will increase the number of FDE cycle per second and mean that the computer will run faster but it may overheat
**Cache size -** if the size of the cache is increased then more instructions can be stored in it more instructions can be fetched quicker than fetching them from main memory so, the computer runs faster
**Number of cores -** computers can have multiple cores in their processors so each core can process instructions at the same time. However, the speed increase can be affected by a number of factors. (e.g. a core may have to wait for access to outside resources --- the cores may have to wait for access to outside resources --- the code needs to have been written especially for using multiple copies)
\
\
\