Status – Week 266 Victor Moya
Summary ShaderEmulator ShaderEmulator ShaderFetch ShaderFetch ShaderDecodeExecute ShaderDecodeExecute Communication storage classes Communication storage classes GPU design GPU design PS2 PS2 PS3 PS3 Imagine Imagine
ShaderEmulator Decoded information for emulation moved from ShaderEmulator to ShaderInstruction. Decoded information for emulation moved from ShaderEmulator to ShaderInstruction. Used macros for shader instructions. Used macros for shader instructions. Functions renamed. Functions renamed. Not tested yet. Not tested yet. Shader assembler? Shader assembler?
ShaderFetch Parameters: Parameters: numThreads numThreads numActiveThreads (runnable?) numActiveThreads (runnable?) issueRate (fetch width?) issueRate (fetch width?) retireRate (unblock rate?) retireRate (unblock rate?) Issues N instructions from cycle from succesive ‘threads’ (inputs?). Issues N instructions from cycle from succesive ‘threads’ (inputs?). Threads can be ready (a new instruction can be fetched) or blocked (waiting for ‘retire’ command from decode). Threads can be ready (a new instruction can be fetched) or blocked (waiting for ‘retire’ command from decode).
ShaderFetch Non runnable threads act as buffer for input refill. Non runnable threads act as buffer for input refill. Finished threads act as buffers for output (consumes runnable threads). Finished threads act as buffers for output (consumes runnable threads). Free threads are get first from runnable, later from input buffer. Free threads are get first from runnable, later from input buffer.
ShaderFetch Receives control from Decode/Execute: Receives control from Decode/Execute: PC updates. PC updates. Retire/Unblock instruction/thread. Retire/Unblock instruction/thread. End of thread: ready for output dump. End of thread: ready for output dump. Output dump to next unit? Output dump to next unit? ShaderFetch sends it and next unit acks? ShaderFetch sends it and next unit acks? Next unit asks data (poll), ShaderFetch sends it? Next unit asks data (poll), ShaderFetch sends it? Handle in decode/execute? Handle in decode/execute?
ShaderFetch Ignores commands from Command Processor if it can not be executed: Ignores commands from Command Processor if it can not be executed: Wait for a free input thread. Wait for a free input thread. Wait for all threads to end. Wait for all threads to end. Ack to Command Processor when a command is executed. Ack to Command Processor when a command is executed.
ShaderDecodeExecute Parameters: Parameters: numThreads: runnable threads only!!! numThreads: runnable threads only!!! issueRate: number of instructions received/launched per cycle? issueRate: number of instructions received/launched per cycle? retireRate: number of instruction ‘finished’ per cycle? retireRate: number of instruction ‘finished’ per cycle? Receives new instructions from ShaderFetch. Receives new instructions from ShaderFetch. Check dependeces: Check dependeces: Address (QI) bank. Address (QI) bank. Temp. Register bank (QF). Temp. Register bank (QF). Flags. Flags.
ShaderDecodeExecute Instruction Queues sopported? Instruction Queues sopported? Out-of-order supported? Out-of-order supported? Store information about in-fly instructions? Store information about in-fly instructions? Latency is variable? Latency is variable? Load/Store supported? Load/Store supported?
Communication storage Communication between boxes: Communication between boxes: ShaderExecInstruction ShaderExecInstruction ShaderCommand ShaderCommand ShaderDecodeCommand ShaderDecodeCommand Dynamic: creating/destruction. Dynamic: creating/destruction. Class model or struct model? Class model or struct model? Inherit from a ‘dynamic data’ class. Inherit from a ‘dynamic data’ class. Modified new/delete implementation. Modified new/delete implementation.
GPU design Target architecture? Target architecture? NV30 NV30 DX9 DX9 DX10 DX10 OpenGL2 OpenGL2 PS3 PS3 Imagine Imagine Are we really going for it? Are we really going for it? Do we really know what we are doing? Do we really know what we are doing?
PS2 I got the EE, VU and GS programming manuals :). I got the EE, VU and GS programming manuals :).
PS3 Sony patent. Sony patent. I haven’t read it yet. I haven’t read it yet.
Imagine ‘Computer Graphics on a Stream Architecture’, John Douglas Owens, PhD dissertation. ‘Computer Graphics on a Stream Architecture’, John Douglas Owens, PhD dissertation. Not read yet either. Not read yet either.