A
memory management system provides
microcode instructions that are divided into multiple tuned phases and stored as separate modules inside a
phase code depository. A
microcode manager, containing a mode
detector, sequence identifier, code
loader, drawing data processor and phase executor, interacts with a
microcode processor and the
phase code depository. The mode
detector evaluates a user request for a desired mode. In response to a command from the mode
detector, the sequence identifier selects a correct phase sequence that is needed to implement the desired mode. The code
loader transfers the phase sequence from the
phase code depository to the microcode processor where it is stored in a microcode
instruction memory. The
memory address for each module within the phase sequence is written to a microcode
data memory. The drawing data for the
graphics mode is sent from the drawing data processor to the microcode processor, and the phase executor instructs the microcode processor to execute the phase sequence to render the desired mode by
processing the drawing data. The resulting data is forwarded to another processor for additional microcode
processing, vector
processing, rasterization, or the like. The ability to select interchangeable phase modules to implement a desired mode reduces microcode memory requirements and allows easy integration and reuse of previously developed features among different games and other
graphics software developers without having to rely on the type of platform.