Why do GPUs/CPUs need :
1-Register Files
This is where the data are stored before and after processing in the ALUs .
In computer language , an instruction is the math operation itself (like add and multiply) , an operand specifies the data (values) that are going to be operated on .
2x3 = ??
X: is the instruction
2 & 3 : are the operands ..
so operand collectors , collect the operands and feed them to the ALUs .
Responsible for tracking and processing memory addresses to access it (read=load/write=store).
4-Address Generation Unit
Not sure , this is a purly CPU function I think , as stated by Nick , the CPU maps all types of memory (HD , RAM , Cache..etc) into one single virtual continuous addressing mode , this done on per process basis , and it hides data fragmentation and improves effeciency of fetching .
however , once the CPU is ready to store data , the virtual addresses must be converted into physical one , and this is where the AGU proves useful .
The AGU is aided by the TLB cache (translation lookaside buffer) ,in which the cpu stores a segment of virtual to physical addresses , for the convenience of the AGU .
AGUs do page walk ?
Local on-chip caches , caches are used in conjunction with texture units and ROPS ,they are also used in GPGPU programs .. they facilitate fetching data in advance (like cpu caches) and moving data around the chip without the need to repeatedly access the slow RAM .
However , I find myself curious about the order in which these units work in a GPU , I guess they work like this (excluding the intermediate steps of processing instructions in the ALUs) :
1-load/store
1-operand collectors
2-register files