structure and function of the processor
the arithmetic and logic unit (ALU):
completes all arithmetic and logic functions
arithmetic operations on fixed/floating point numbers:
ADD, SUBTRACT, MULTIPLY and DIVIDE
bitwise shift operations
boolean logic operations:
comparisons
AND, OR, NOT and XOR
results are often stored in general-purpose registers (e.g ACC)
the control unit (CU):
coordinates all activities of the CPU
directs flow of data between CPU and other devices
accepts next instruction and decodes it
handles execution of instructions and storing the resulting data in main memory or registers
sends memory read/write requests to RAM along the control bus
sends command and control signals such as bus requests/grants, and interrupt requests
makes extensive use of the status registers and clock
communicates with all elements of the CPU
registers are small memory cells that operate at a very high speed, they are used to temporarily store data.
the program counter (PC):
holds the address of the next instruction to be executed
this could be:
the next instruction in a sequence
an address to jump to, if the previous instruction was to branch (this would be copied from the CIR)
at the start of every FDE cycle, the instruction in the PC is copied to the MAR
the memory data register (MDR):
used to temporarily store data that is to be read from, or written to memory
the memory address register (MAR):
holds the address of a memory location from which data or an instruction is to be fetched, or which data is to be written to
sends this address to memory down the address bus
the accumulator (ACC):
data and control information often stored here
stores the results of operations performed in the ALU
the current instruction register (CIR):
holds the current instruction being executed
contents of MDR are copied to the CIR (if MDR contains an instruction)
contains the opcode and operand(s) of the instruction
buses are a set of parallel wires which connect two or more components inside the CPU.
the width of the bus is the number of parallel wires the bus has:
the width of the bus is directly proportional to the number of bits that can be transferred simultaneously at any given time
buses are typically 8, 16, 32 or 64 wires wide
data bus:
transports data and instructions (in binary) between components, bi-directional
address bus:
transmits memory addresses specifying where data is to be sent to/retrieved from
control bus:
transmits control signals between internal/external components
coordinates the use of the address and data buses
provides status information between system components
control signals:
bus request: shows that a device is requesting the use of the data bus
bus grant: shows that the CPU has granted access to the data bus
memory write: data is written into the addressed location using this bus
memory read: data is read from a specific location to be placed onto the data bus,
interrupt request: shows that a device is requesting access to the CPU
clock: used to synchronise operations
the address of the next instruction is copied from the PC to the MAR
contents of the MAR are sent along the address bus to memory, where it waits to receive a signal from the control bus
the instruction held in the corresponding address is copied to the MDR by the data bus
if the MDR holds an address, its contents are copied to the CIR
the PC is incremented by 1
the instruction in the CIR is split into opcode and operand
the instruction is decoded in the decode unit
the instruction is executed
this may involve performing arithmetic operations in the ALU or storing the contents of the accumulator in a memory address in RAM
clock speed is determined by the system clock (an electronic device which generates signals, switching between 0 and 1)
all processor activities begin on a clock pulse, and each CPU operation starts as the clock changes from 0 to 1
clock speed is the time taken for one clock cycle to complete
measured in GigaHertz (GHz)
1GHz = 1 billion instructions fetched per second
a core is an independent processor that is able to run its own FDE cycle.
a computer with multiple cores can complete multiple FDE cycles at any given time
a computer with dual cores can theoretically complete tasks twice as fast as a computer with a single core, however..
not all programs are able to utilise multiple cores efficiently as they have not been designed to do so
inter-core communication also requires processor time
cache memory is located on or near the CPU
much faster to access than RAM
instructions fetched from main memory are copied to the cache, so if required again, they can be accessed quicker
as cache fills up, unused instructions are replaced
pipelining is the process of completing the FDE cycles of separate instructions simultaneously, and holding appropriate data in a buffer in close proximity to the CPU until it’s required.
it aims to reduce the amount of the CPU which is kept idle
it is separated into instruction pipelining and arithmetic pipelining.
instruction: separating out the instruction into fetching, decoding, and executing
arithmetic: breaking down the arithmetic operations and overlapping them as they are performed
pipelining is inefficient when programs contain lots of branching, as each time a program branches, the processor will have to ‘flush the pipe’
instructions and data stored in separate memory units
each has its own bus
reading and writing data can be done at the same time as fetching an instruction
used in RISC processors
shared memory space for data and instructions
built on the ‘stored program’ concept
instructions and data stored in the same format
a single control unit follows a linear FDE cycle
one instruction at a time
contemporary processors use a combination, von neumann is used when working with data and instructions in main memory, but uses harvard architecture to divide the cache into instruction cache and data cache
advantages of von neumann | advantages of harvard |
---|---|
cheaper to develop, control unit is easier to design | quicker execution, data and instructions can be fetched in parallel. |
programs can be optimised in size | memories can be different sizes, makes efficient use of space |
the arithmetic and logic unit (ALU):
completes all arithmetic and logic functions
arithmetic operations on fixed/floating point numbers:
ADD, SUBTRACT, MULTIPLY and DIVIDE
bitwise shift operations
boolean logic operations:
comparisons
AND, OR, NOT and XOR
results are often stored in general-purpose registers (e.g ACC)
the control unit (CU):
coordinates all activities of the CPU
directs flow of data between CPU and other devices
accepts next instruction and decodes it
handles execution of instructions and storing the resulting data in main memory or registers
sends memory read/write requests to RAM along the control bus
sends command and control signals such as bus requests/grants, and interrupt requests
makes extensive use of the status registers and clock
communicates with all elements of the CPU
registers are small memory cells that operate at a very high speed, they are used to temporarily store data.
the program counter (PC):
holds the address of the next instruction to be executed
this could be:
the next instruction in a sequence
an address to jump to, if the previous instruction was to branch (this would be copied from the CIR)
at the start of every FDE cycle, the instruction in the PC is copied to the MAR
the memory data register (MDR):
used to temporarily store data that is to be read from, or written to memory
the memory address register (MAR):
holds the address of a memory location from which data or an instruction is to be fetched, or which data is to be written to
sends this address to memory down the address bus
the accumulator (ACC):
data and control information often stored here
stores the results of operations performed in the ALU
the current instruction register (CIR):
holds the current instruction being executed
contents of MDR are copied to the CIR (if MDR contains an instruction)
contains the opcode and operand(s) of the instruction
buses are a set of parallel wires which connect two or more components inside the CPU.
the width of the bus is the number of parallel wires the bus has:
the width of the bus is directly proportional to the number of bits that can be transferred simultaneously at any given time
buses are typically 8, 16, 32 or 64 wires wide
data bus:
transports data and instructions (in binary) between components, bi-directional
address bus:
transmits memory addresses specifying where data is to be sent to/retrieved from
control bus:
transmits control signals between internal/external components
coordinates the use of the address and data buses
provides status information between system components
control signals:
bus request: shows that a device is requesting the use of the data bus
bus grant: shows that the CPU has granted access to the data bus
memory write: data is written into the addressed location using this bus
memory read: data is read from a specific location to be placed onto the data bus,
interrupt request: shows that a device is requesting access to the CPU
clock: used to synchronise operations
the address of the next instruction is copied from the PC to the MAR
contents of the MAR are sent along the address bus to memory, where it waits to receive a signal from the control bus
the instruction held in the corresponding address is copied to the MDR by the data bus
if the MDR holds an address, its contents are copied to the CIR
the PC is incremented by 1
the instruction in the CIR is split into opcode and operand
the instruction is decoded in the decode unit
the instruction is executed
this may involve performing arithmetic operations in the ALU or storing the contents of the accumulator in a memory address in RAM
clock speed is determined by the system clock (an electronic device which generates signals, switching between 0 and 1)
all processor activities begin on a clock pulse, and each CPU operation starts as the clock changes from 0 to 1
clock speed is the time taken for one clock cycle to complete
measured in GigaHertz (GHz)
1GHz = 1 billion instructions fetched per second
a core is an independent processor that is able to run its own FDE cycle.
a computer with multiple cores can complete multiple FDE cycles at any given time
a computer with dual cores can theoretically complete tasks twice as fast as a computer with a single core, however..
not all programs are able to utilise multiple cores efficiently as they have not been designed to do so
inter-core communication also requires processor time
cache memory is located on or near the CPU
much faster to access than RAM
instructions fetched from main memory are copied to the cache, so if required again, they can be accessed quicker
as cache fills up, unused instructions are replaced
pipelining is the process of completing the FDE cycles of separate instructions simultaneously, and holding appropriate data in a buffer in close proximity to the CPU until it’s required.
it aims to reduce the amount of the CPU which is kept idle
it is separated into instruction pipelining and arithmetic pipelining.
instruction: separating out the instruction into fetching, decoding, and executing
arithmetic: breaking down the arithmetic operations and overlapping them as they are performed
pipelining is inefficient when programs contain lots of branching, as each time a program branches, the processor will have to ‘flush the pipe’
instructions and data stored in separate memory units
each has its own bus
reading and writing data can be done at the same time as fetching an instruction
used in RISC processors
shared memory space for data and instructions
built on the ‘stored program’ concept
instructions and data stored in the same format
a single control unit follows a linear FDE cycle
one instruction at a time
contemporary processors use a combination, von neumann is used when working with data and instructions in main memory, but uses harvard architecture to divide the cache into instruction cache and data cache
advantages of von neumann | advantages of harvard |
---|---|
cheaper to develop, control unit is easier to design | quicker execution, data and instructions can be fetched in parallel. |
programs can be optimised in size | memories can be different sizes, makes efficient use of space |