more cores - allows tasks to be executed in parallel. Allows tasks to be split up, increasing speed of execution. more cache memory - can be accessed faster than main memory, increasing capacity means main memory doesn't need to be accessed as often therefore faster execution. Increasing address bus width - increases amount of addressable locations. increasing clock speed - increases amount of instructions executed per unit time. increasing word length- increases amount of data able to be processed at one time