Patents by Inventor Alistair Goudie

Alistair Goudie has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 12164958
    Abstract: Logic includes a task builder for building tasks comprising data items, a task scheduler for scheduling tasks for processing by a parallel processor, a data store arranged to map content of each data item to an item ID, and a linked-list RAM comprising an entry for each item ID. For each new data item, the task builder creates a new task by starting a new linked list, or adds the data item to an existing linked list. In each linked list, the entry for each data item records a pointer to a next item ID in the list. The task builder indicates when any of the tasks is ready for scheduling. The task scheduler identifies a ready task based on the indication from the task builder, and in response follows the pointers in the respective linked list in order to schedule the data items of the task for processing.
    Type: Grant
    Filed: April 11, 2023
    Date of Patent: December 10, 2024
    Assignee: Imagination Technologies Limited
    Inventors: Alistair Goudie, Panagiotis Velentzas
  • Patent number: 12112197
    Abstract: A processor has a register bank to which software writes descriptors specifying tasks to be processed by a hardware pipeline. The register bank includes a plurality of register sets, each for holding the descriptor of a task. The processor includes a first selector operable to connect the execution logic to a selected one of the register sets and thereby enable the software to write successive ones of said descriptors to different ones of said register sets. The processor also includes a second selector operable to connect the hardware pipeline to a selected one of the register sets. The processor further comprises control circuitry configured to control the hardware pipeline to begin processing a current task based on the descriptor in a current one of the register sets while the software is writing the descriptor of another task to another of the register sets.
    Type: Grant
    Filed: September 27, 2022
    Date of Patent: October 8, 2024
    Assignee: Imagination Technologies Limited
    Inventors: Michael John Livesley, Ian King, Alistair Goudie
  • Publication number: 20240160571
    Abstract: A processor and a method of obtaining data for a processor are provided. The processor comprises at least a first core, a second core, and a distributed cache. The distributed cache comprises a first cache slice connected to the first core and a second cache slice connected to the second core and to the first cache slice. The first cache slice is configured to receive a memory access request from the first core and forward the memory access request to the second cache slice.
    Type: Application
    Filed: September 29, 2023
    Publication date: May 16, 2024
    Inventors: Mark Landers, Ian King, Alistair Goudie, Michael John Livesley
  • Publication number: 20230297422
    Abstract: Logic includes a task builder for building tasks comprising data items, a task scheduler for scheduling tasks for processing by a parallel processor, a data store arranged to map content of each data item to an item ID, and a linked-list RAM comprising an entry for each item ID. For each new data item, the task builder creates a new task by starting a new linked list, or adds the data item to an existing linked list. In each linked list, the entry for each data item records a pointer to a next item ID in the list. The task builder indicates when any of the tasks is ready for scheduling. The task scheduler identifies a ready task based on the indication from the task builder, and in response follows the pointers in the respective linked list in order to schedule the data items of the task for processing.
    Type: Application
    Filed: April 11, 2023
    Publication date: September 21, 2023
    Inventors: Alistair Goudie, Panagiotis Velentzas
  • Patent number: 11640318
    Abstract: Logic includes a task builder for building tasks comprising data items, a task scheduler for scheduling tasks for processing by a parallel processor, a data store arranged to map content of each data item to an item ID, and a linked-list RAM comprising an entry for each item ID. For each new data item, the task builder creates a new task by starting a new linked list, or adds the data item to an existing linked list. In each linked list, the entry for each data item records a pointer to a next item ID in the list. The task builder indicates when any of the tasks is ready for scheduling. The task scheduler identifies a ready task based on the indication from the task builder, and in response follows the pointers in the respective linked list in order to schedule the data items of the task for processing.
    Type: Grant
    Filed: September 30, 2021
    Date of Patent: May 2, 2023
    Assignee: Imagination Technologies Limited
    Inventors: Alistair Goudie, Panagiotis Velentzas
  • Publication number: 20230120307
    Abstract: A processor has a register bank to which software writes descriptors specifying tasks to be processed by a hardware pipeline. The register bank includes a plurality of register sets, each for holding the descriptor of a task. The processor includes a first selector operable to connect the execution logic to a selected one of the register sets and thereby enable the software to write successive ones of said descriptors to different ones of said register sets. The processor also includes a second selector operable to connect the hardware pipeline to a selected one of the register sets. The processor further comprises control circuitry configured to control the hardware pipeline to begin processing a current task based on the descriptor in a current one of the register sets while the software is writing the descriptor of another task to another of the register sets.
    Type: Application
    Filed: September 27, 2022
    Publication date: April 20, 2023
    Inventors: Michael John Livesley, Ian King, Alistair Goudie
  • Publication number: 20230102062
    Abstract: A graphics processor including geometry and fragment processing logic, and a memory manager arranged to allocate and deallocate memory for use to hold tile data. The memory manager tracks which memory regions are allocated to hold tile data of which subdivisions (e.g. macrotiles) of the render area. Once the fragment processing logic has finished processing the tile data of a subdivision, it sends an identifier of that subdivision to the memory manager for deallocation. The processor further comprises a blocking circuit enabling the fragment processing logic to start processing tile data of a second task while the memory manager is still deallocating some of the memory regions allocated to the subdivisions of a first task; by preventing identifiers of subdivisions of the second task being passed to the memory manager until it has completed deallocating the memory regions allocated to the first task.
    Type: Application
    Filed: September 28, 2022
    Publication date: March 30, 2023
    Inventors: Michael John Livesley, Ian King, Alistair Goudie
  • Publication number: 20230094013
    Abstract: A processor includes a blocking circuit between an upstream section and a downstream section of a hardware pipeline, and control circuitry which triggers the upstream section to process an upstream phase of a first task, with the blocking circuit in an open state whereby first data from the processing of the upstream phase of the first task passes through from the upstream section to be processed in a downstream phase of the first task. In response to detecting that the upstream section has finished processing the upstream phase of the first task, the control circuitry triggers the upstream section to start processing a second task while the downstream section is still processing the downstream phase of the first task, and switches the blocking circuit to a closed state blocking second data from the processing of the upstream phase of the second task passing to the downstream section.
    Type: Application
    Filed: September 28, 2022
    Publication date: March 30, 2023
    Inventors: Michael John Livesley, Ian King, Alistair Goudie
  • Publication number: 20230016927
    Abstract: A method of scheduling processing in a ray tracing system gathers child rays into a child task, assigns priority to the child task on the basis that one or more child rays of the child task are derived from a task to which priority has been assigned, and schedules the child task for processing in preference to one or more other tasks to be scheduled to which priority has not been assigned.
    Type: Application
    Filed: June 28, 2022
    Publication date: January 19, 2023
    Inventors: Alistair Goudie, Panagiotis Velentzas
  • Publication number: 20220114016
    Abstract: Logic includes a task builder for building tasks comprising data items, a task scheduler for scheduling tasks for processing by a parallel processor, a data store arranged to map content of each data item to an item ID, and a linked-list RAM comprising an entry for each item ID. For each new data item, the task builder creates a new task by starting a new linked list, or adds the data item to an existing linked list. In each linked list, the entry for each data item records a pointer to a next item ID in the list. The task builder indicates when any of the tasks is ready for scheduling. The task scheduler identifies a ready task based on the indication from the task builder, and in response follows the pointers in the respective linked list in order to schedule the data items of the task for processing.
    Type: Application
    Filed: September 30, 2021
    Publication date: April 14, 2022
    Inventors: Alistair Goudie, Panagiotis Velentzas
  • Publication number: 20220114780
    Abstract: Ray tracing systems and methods are described for processing rays. A parent shader is executed for a ray. The parent shader includes a shader recursion instruction which invokes a child shader. The execution of the parent shader for the ray is suspended. Intermediate data for the parent shader is stored in a heap of memory, wherein the intermediate data comprises state data and payload data. Storing intermediate data comprises allocating a first set of registers in the heap of memory for storing payload data, and allocating a second set of registers in the heap of memory for storing state data. When the parent shader is ready to resume, intermediate data for the parent shader is read from the heap of memory, and the execution of the parent shader for the ray is resumed.
    Type: Application
    Filed: September 24, 2021
    Publication date: April 14, 2022
    Inventors: Daniel Barnard, Alistair Goudie
  • Publication number: 20220114013
    Abstract: A method of processing rays in a ray tracing system, the method comprising: allocating a block of memory for a task on a per-task basis; processing rays in the task causing at least one child ray to be emitted; writing intermediate data for the task to said block of memory; suspending processing of the task; and when the task is ready to resume, reading intermediate data for the task from the block of memory, and resuming the processing of the task.
    Type: Application
    Filed: September 24, 2021
    Publication date: April 14, 2022
    Inventor: Alistair Goudie
  • Patent number: 6990615
    Abstract: A data and clock recovery circuit is provided for generating a recovered version of a transmitted data stream. The data and clock recovery circuit comprises three main circuit modules, namely a data recovery circuit, a clock recovery circuit, and a detector circuit. The data recovery circuit is arranged to receive a data stream, and to generate therefrom an estimate of the signal levels for each bit-period of the originally transmitted data stream. The estimates of the signal levels are stored within the data recovery circuit and are sampled by the clock recovery circuit so that the original data stream is recovered. The data recovery circuit is also arranged to generate a so-called “word metric” which is a quality factor representing the accuracy of the estimated signal levels. The clock recovery circuit is arranged to use both the received data stream, and the word metric generated in the data recovery circuit, to determine whether or not the current sampling time is optimal.
    Type: Grant
    Filed: February 21, 2003
    Date of Patent: January 24, 2006
    Assignee: Zarlink Semiconductor Limited
    Inventor: Alistair Goudie
  • Patent number: 6760795
    Abstract: A data queue system comprises plural memory blocks defined in memory, and a queue which comprises a number of memory blocks each including a link to the following block in the data queue. A queue descriptor includes identities which identify: the final block in the queue, the memory location where the most recent read commit occurred (and optionally an offset from a predetermined location in that block), the memory location where the most recent write commit occurred (and optionally an offset from a predetermined location in that memory block), the size of the blocks, the memory location the most recent write occurred, the number of unused blocks, the number of blocks which contain data to be read, the type of data queue, the memory location where the most recent read occurred and the number of blocks which have been read since the most recent read commit.
    Type: Grant
    Filed: December 28, 2001
    Date of Patent: July 6, 2004
    Assignee: Zarlink Semiconductor Limited
    Inventors: Alistair Goudie, Colin Helliwell, Marcus Jones
  • Publication number: 20030200490
    Abstract: A data and clock recovery circuit is provided for generating a recovered version of a transmitted data stream. The data and clock recovery circuit comprises three main circuit modules, namely a data recovery circuit, a clock recovery circuit, and a detector circuit. The data recovery circuit is arranged to receive a data stream, and to generate therefrom an estimate of the signal levels for each bit-period of the originally transmitted data stream. The estimates of the signal levels are stored within the data recovery circuit and are sampled by the clock recovery circuit so that the original data stream is recovered. The data recovery circuit is also arranged to generate a so-called “word metric” which is a quality factor representing the accuracy of the estimated signal levels. The clock recovery circuit is arranged to use both the received data stream, and the word metric generated in the data recovery circuit, to determine whether or not the current sampling time is optimal.
    Type: Application
    Filed: February 21, 2003
    Publication date: October 23, 2003
    Applicant: Zarlink Semiconductor Limited
    Inventor: Alistair Goudie
  • Publication number: 20020156764
    Abstract: A method of managing data stored in a queue in memory comprises reading data from a head of the queue, and updating the location of a ‘latest read’ pointer, separate from the memory blocks in which the data is stored, to a location corresponding to the end of the data. After transferring the data to a destination and upon receiving confirmation that the data transfer was successful, the location of a ‘committed read’ pointer is updated to point to a location corresponding to the end of the data. This allows uncommitted data to be stored without requiring a separate area of memory.
    Type: Application
    Filed: December 28, 2001
    Publication date: October 24, 2002
    Applicant: Zarlink Semiconductor Limited
    Inventors: Alistair Goudie, Colin Helliwell, Marcus Jones
  • Publication number: 20020133648
    Abstract: A data queue system comprises plural memory blocks defined in memory, and a queue which comprises a number of memory blocks each including a link to the following block in the data queue. A queue descriptor includes identities which identify: the final block in the queue, the memory location where the most recent read commit occurred (and optionally an offset from a predetermined location in that block), the memory location where the most recent write commit occurred (and optionally an offset from a predetermined location in that memory block), the size of the blocks, the memory location the most recent write occurred, the number of unused blocks, the number of blocks which contain data to be read, the type of data queue, the memory location where the most recent read occurred and the number of blocks which have been read since the most recent read commit.
    Type: Application
    Filed: December 28, 2001
    Publication date: September 19, 2002
    Applicant: Zarlink Semiconductor Limited
    Inventors: Alistair Goudie, Colin Helliwell, Marcus Jones
  • Publication number: 20020129213
    Abstract: A method of storing a data packet in a memory divided into plural memory blocks comprises removing a header of the data packet into packet fragments, storing each packet fragment in a respective memory block with a respective header. A ‘packet start’ flag is then set in the header of the memory block containing the packet fragment corresponding to the start of the remainder of the data packet.
    Type: Application
    Filed: December 28, 2001
    Publication date: September 12, 2002
    Applicant: Zarlink Semiconductor Limited
    Inventors: Alistair Goudie, Colin Helliwell, Marcus Jones