|
Well memory has a maximum speed at which it can deliver data to a processor. You cannot exceed that limit. If you need more data than the memory can deliver than your system will slow down because the memory bandwidth is too small, resulting in slower performance. 3D accelerators like the Voodoo based cards and the PowerVR based ones use EDO-Ram. This type of ram is relatively cheap and fast for medium operations. In normal mode EDO can deliver up to 280MBps, in burst mode up to 400MBps. Now what is the difference between burst and normal mode ? Well to read data out of memory you need to send the address (location) of the data in the memory. When the memory receives the address it will ,after something called the access time, deliver the data at its output. So for each byte you have to provide an address. To speed this up you can go into burst mode, this means activating a counter on the memory chip that will bring a sequence of data at its output. It can only be used to bring sequential data (blocks) to the output. When accessing the texture memory you are not reading sequential data (interpolation requires non sequential points) so you can not use the burst mode, which means that the memory bandwidth is about 280MBps. Well there is a formula to determine how many bytes you need to read out of the texture memory, it is based on the number of pixels per polygon and the number of polygons per second. The number of reads from the texture memory is also dependent of the filtering technique used. You need 1 point for point filtering, 4 point for Bi-linear filtering and 8 points for Tri-linear filtering. Each point is 24 bit (=3Bytes) color. This gives the following formula's :
The number of polygons per second can vary : we take 200kps (Playstation) - 500kps - 1Mps (max). This gives the following numbers :
Well the more complex the scene the more polygons are used. More polygons means more memory access. Higher resolution means more points, more memory access. If we remember what we have learned about the Z-Buffer than we know that the Voodoo based cards draw and calculate all polygons whether they are visible or not. This means that the card is doing a lot of unnecessary memory access. Since the PowerVR cards only calculate the pixels that are visible they are capable of reducing the number of memory accesses dramatically (not all polygons must be drawn). This is the main reason why the Voodoo based cards are limited to 640x480. Just to give you an example : Tomb Raider runs most of the time with 30 frames per second, however there are a few very complex room (lots of trees covering each other) were the frame rate suddenly drops to only 20frames per second. This is due to memory bandwidth problems... The PowerVR cards do not have this problem and can continue accelerating even up to 1024x768. |