Nova Patents
EP0875855A2

Graphics processing system

Abstract

The present invention discloses apparatus for, and a method of, rendering image data prior to outputting of the resulting image. A graphics co-processor (224) is utilized together with a host CPU (202), the former having a plurality of data calculation streams (241, 242, 243) arranged in parallel fashion. Only one of the data calculation streams (241, 242, 243) is operated at any one time. Preferably at least one (242) of the data calculation streams is able to be reconfigured.

EP0875855A2, drawing sheet 1
Sheet 1 of 270

Term

Term ended

Projected expiry passed 29 April 2018, 8.4 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

85 claims: 12 independent, 73 dependent

  1. 1
    A method of rendering image data prior to output of the resulting image, said method comprising the steps of:(1) utilising a graphics co-processor in conjunction with a host processor, (2) within the graphics co-processor providing a plurality of data calculation streams arranged in parallel fashion, and (3) operating only one of said data calculation streams at any one time to perform like image calculations on a stream of like image data.
  2. 8
    Apparatus for rendering image data prior to outputting the resulting image, said apparatus comprising a graphics co-processor adapted to operation in conjunction with a host processor, said graphics co-processor having a plurality of data calculation streams arranged in parallel fashion but only one of which is operated at any one time to perform like image calculations on a stream of like image data.
  3. 15
    A method of controlling the interaction between a host CPU and at least one co-processor in a computer system to permit substantially simultaneous decoupled execution of CPU instructions and co-processor instructions, and dynamic allocation of commonly used memory space during the course of the execution of said instructions, said method comprising the steps of:(a) said host CPU allocating memory resources to be utilized by a set of instructions to be co-processor executed;(b) generating a queue of pending co-processor instructions to be executed and a clean up queue of co-processor instructions for which execution has been completed;(c) from time to time, under control of said host CPU, releasing for re-allocation memory resources previously utilized by the instructions contained in said clean up queue of executed instructions.
  4. 24
    Dynamic memory management means in a computer system having a memory of predetermined size, a host CPU and at least one co-processor, said memory management means comprising:(a) an instruction generator means connected with said host CPU and generating a sequence of instructions intended for co-processor execution, (b) a memory manager means connected to said memory and said instruction generator means to dynamically allocate space in said memory for co-processor use in executing said sequence of co-processor instructions, (c) a queue manager means connected to said instruction generator means, said memory manager means and said co-processor, said queue manager means being arranged to store said sequence of instructions in a queue of pending instructions to be co-processor executed and a clean up queue of instructions which have been co-processor executed,    wherein from time to time said queue manager means removes executed instructions from said clean up queue to thereby release for reallocation memory space previously allocated to said removed executed instructions.
  5. 30
    A co-processor adapted for using virtual memory with a host processing means, a memory coupled to said host processing means to implement said virtual memory, said co-processor including:virtual-physical memory mapping means for interrogating a virtual memory table and for mapping one or more virtual memory addresses requested by said co-processor into corresponding physical addresses in said memory of said host processing means.
  6. 36
    The co-processor according to any one of claims 30, 31 and 35, wherein said virtual memory table is a page table.
  7. 37
    A method of operating a co-processor to use virtual memory with a host processing means, a memory coupled to said host processing means to implement said virtual memory, said method including the steps of:interrogating a virtual memory table;and mapping one or more virtual memory addresses requested by said co-processor into corresponding physical addresses in said memory of said host processing means.
  8. 43
    The co-processor according to any one of claims 37, 39 and 42, wherein said virtual memory table is a page table.
  9. 44
    A memory management apparatus for a co-processor coupled to a host processor with virtual memory, said virtual memory comprising a plurality of virtual-memory pages contained in a host memory coupled to said host processor, said host memory comprising a plurality of physical pages, said memory management apparatus including:buffering means for caching a predetermined number of virtual-to-physical memory address mappings, each memory-address mapping including a virtual-memory address and a corresponding physical address;means for comparing a virtual-memory address requested by said co-processor with said memory-address mappings currently cached by said buffering means;means for, if said comparing means determines said virtual memory address requested by said co-processor matches a virtual-memory address of one of said memory-address mappings in said buffering means, providing a physical address to said co-processor from said matching memory-address mapping;and means for, if said comparing means determines said virtual-memory address requested by said co-processor does not match the virtual memory address of any memory-address mapping currently cached in said buffering means, updating said buffering means with a memory-address mapping retrieved from a page table, said retrieved memory-address mapping containing a physical address corresponding to said virtual memory address requested by said co-processor, said page table stored in a predetermined number of said physical pages.
  10. 55
    A method of managing virtual memory for a co-processor coupled to a host processor with said virtual memory, said virtual memory comprising a plurality of virtual-memory pages contained in a host memory coupled to said host processor, said host memory comprising a plurality of physical pages, said method including the steps of:caching a predetermined number of virtual-to-physical memory address mappings in buffering means, each memory-address mapping including a virtual-memory address and a corresponding physical address;comparing a virtual-memory address requested by said co-processor with said memory-address mappings currently cached by said buffering means;if said comparison determines said virtual memory address requested by said co-processor matches a virtual-memory address of one of said memory-address mappings in said buffering means, providing a physical address to said co-processor from said matching memory-address mapping;and if said comparison determines said virtual-memory address requested by said co-processor does not match the virtual memory address of any memory-address mapping currently cached in said buffering means, updating said buffering means with a memory-address mapping retrieved from a page table, said retrieved memory-address mapping containing a physical address corresponding to said virtual memory address requested by said co-processor, said page table stored in a predetermined number of said physical pages.
  11. 66
    A system for managing virtual memory, said system including:a host processing means;a host memory coupled to said host processing means to implement said virtual memory;a co-processor adapted for using virtual memory;virtual-physical memory mapping means, coupled to said co-processor, for interrogating a virtual memory table and for mapping one or more virtual memory addresses requested by said co-processor into corresponding physical addresses in said host memory.
  12. 85
    A recording medium storing computer-executable program codes in which a method according to any one of claims 1 - 7, 15 - 23 and 37 - 42 is implemented.