I’ve been saying for while that there’s not really a place for consoles to innovate in hardware, hence the next-gen systems are said to be very dull PC-like APUs. However, rumour that Durango has 3 extra custom ‘blocks’ suggests otherwise, which gets me wondering what are features that could be added in hardware to good effect?
We tend to think of console workloads as being graphics on the GPU and AI+physics on the CPU, with whatever crossover. But as bkilian revealed in another thread, things like audio workload, that we take for granted, can have significant requirements that take away from the CPU. That's where specialised custom hardware can bring efficiencies providing a larger overall performance gain than that same silicon thrown at programmable hardware. Eg. A cheap, small Broadcom h.264 decoder block versus a large amount of CPU/GPU power to do the same thing. And this is what consoles relied on in the past. So what software systems have we been overlooking that could benefit from custom hardware? A few historical ideas:
1) Hardware sprites.
A 2D portion of memory overlaid on the display.
2) Blitter
A memory manipulation processor that copies/moves RAM contents from place to place, which is otherwise performed on CPU
3) DSP/audio processor
Sound generation and manipulation.
4) compression hardware
(De)compress on the fly
All these functions (save sprites which were only applicable to scanline displays) can be performed on programmable hardware, but certainly found benefits in custom hardware on older machines. I don’t know what modern hardware would benefit from.
Well, DSP has obvious benefits given what bkilian said about audio being very processor intensive. That’s one area where n% of total system silicon budget for dedicated audio (and other signal functions) that provides >n% performance gain in total system.
What else? Is there value in a blitter? I don’t know what memory operations are performed in a typical 3D game beyond the obvious. Clearly a blitter would benefit 2D, but as 2D games are typically less demanding on the CPU I don’t see that adding a blitter would help much for that; the CPU is quite capable. Heck, 2D is handled as textures composited as quads on the GPU anyhow. I think of memory access on a console (or modern game) to be ‘load assets, fetch audio/textures/objects from RAM and process’ so this looks pretty worthless to me like sprites. Or could it be useful in ways I don’t know? What about shifting data from slow RAM to fast RAM on system with discrete memory pools?
We know compression hardware is featured on GPUs/SOCs for video playback. Is there value in some compression engine that could load/stream compressed assets, like JPEG2000 textures? Once in RAM the data is stored in GPU friendly formats, so are the benefits really worth it?
The real open question here is what areas of gaming technology can be improved beyond just more bandwidth, storage, and processing power? Have any devs hit issues regards audio, IO, memory functions, or something I’m completely unaware of, where they can see some bit of custom hardware will really help?
We tend to think of console workloads as being graphics on the GPU and AI+physics on the CPU, with whatever crossover. But as bkilian revealed in another thread, things like audio workload, that we take for granted, can have significant requirements that take away from the CPU. That's where specialised custom hardware can bring efficiencies providing a larger overall performance gain than that same silicon thrown at programmable hardware. Eg. A cheap, small Broadcom h.264 decoder block versus a large amount of CPU/GPU power to do the same thing. And this is what consoles relied on in the past. So what software systems have we been overlooking that could benefit from custom hardware? A few historical ideas:
1) Hardware sprites.
A 2D portion of memory overlaid on the display.
2) Blitter
A memory manipulation processor that copies/moves RAM contents from place to place, which is otherwise performed on CPU
3) DSP/audio processor
Sound generation and manipulation.
4) compression hardware
(De)compress on the fly
All these functions (save sprites which were only applicable to scanline displays) can be performed on programmable hardware, but certainly found benefits in custom hardware on older machines. I don’t know what modern hardware would benefit from.
Well, DSP has obvious benefits given what bkilian said about audio being very processor intensive. That’s one area where n% of total system silicon budget for dedicated audio (and other signal functions) that provides >n% performance gain in total system.
What else? Is there value in a blitter? I don’t know what memory operations are performed in a typical 3D game beyond the obvious. Clearly a blitter would benefit 2D, but as 2D games are typically less demanding on the CPU I don’t see that adding a blitter would help much for that; the CPU is quite capable. Heck, 2D is handled as textures composited as quads on the GPU anyhow. I think of memory access on a console (or modern game) to be ‘load assets, fetch audio/textures/objects from RAM and process’ so this looks pretty worthless to me like sprites. Or could it be useful in ways I don’t know? What about shifting data from slow RAM to fast RAM on system with discrete memory pools?
We know compression hardware is featured on GPUs/SOCs for video playback. Is there value in some compression engine that could load/stream compressed assets, like JPEG2000 textures? Once in RAM the data is stored in GPU friendly formats, so are the benefits really worth it?
The real open question here is what areas of gaming technology can be improved beyond just more bandwidth, storage, and processing power? Have any devs hit issues regards audio, IO, memory functions, or something I’m completely unaware of, where they can see some bit of custom hardware will really help?