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: 12164958Abstract: 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: GrantFiled: April 11, 2023Date of Patent: December 10, 2024Assignee: Imagination Technologies LimitedInventors: Alistair Goudie, Panagiotis Velentzas
-
Patent number: 12112197Abstract: 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: GrantFiled: September 27, 2022Date of Patent: October 8, 2024Assignee: Imagination Technologies LimitedInventors: Michael John Livesley, Ian King, Alistair Goudie
-
Publication number: 20240160571Abstract: 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: ApplicationFiled: September 29, 2023Publication date: May 16, 2024Inventors: Mark Landers, Ian King, Alistair Goudie, Michael John Livesley
-
Publication number: 20230297422Abstract: 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: ApplicationFiled: April 11, 2023Publication date: September 21, 2023Inventors: Alistair Goudie, Panagiotis Velentzas
-
Patent number: 11640318Abstract: 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: GrantFiled: September 30, 2021Date of Patent: May 2, 2023Assignee: Imagination Technologies LimitedInventors: Alistair Goudie, Panagiotis Velentzas
-
Publication number: 20230120307Abstract: 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: ApplicationFiled: September 27, 2022Publication date: April 20, 2023Inventors: Michael John Livesley, Ian King, Alistair Goudie
-
Publication number: 20230102062Abstract: 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: ApplicationFiled: September 28, 2022Publication date: March 30, 2023Inventors: Michael John Livesley, Ian King, Alistair Goudie
-
Publication number: 20230094013Abstract: 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: ApplicationFiled: September 28, 2022Publication date: March 30, 2023Inventors: Michael John Livesley, Ian King, Alistair Goudie
-
Publication number: 20230016927Abstract: 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: ApplicationFiled: June 28, 2022Publication date: January 19, 2023Inventors: Alistair Goudie, Panagiotis Velentzas
-
Publication number: 20220114016Abstract: 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: ApplicationFiled: September 30, 2021Publication date: April 14, 2022Inventors: Alistair Goudie, Panagiotis Velentzas
-
Publication number: 20220114780Abstract: 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: ApplicationFiled: September 24, 2021Publication date: April 14, 2022Inventors: Daniel Barnard, Alistair Goudie
-
Publication number: 20220114013Abstract: 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: ApplicationFiled: September 24, 2021Publication date: April 14, 2022Inventor: Alistair Goudie
-
Patent number: 6990615Abstract: 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: GrantFiled: February 21, 2003Date of Patent: January 24, 2006Assignee: Zarlink Semiconductor LimitedInventor: Alistair Goudie
-
Patent number: 6760795Abstract: 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: GrantFiled: December 28, 2001Date of Patent: July 6, 2004Assignee: Zarlink Semiconductor LimitedInventors: Alistair Goudie, Colin Helliwell, Marcus Jones
-
Publication number: 20030200490Abstract: 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: ApplicationFiled: February 21, 2003Publication date: October 23, 2003Applicant: Zarlink Semiconductor LimitedInventor: Alistair Goudie
-
Publication number: 20020156764Abstract: 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: ApplicationFiled: December 28, 2001Publication date: October 24, 2002Applicant: Zarlink Semiconductor LimitedInventors: Alistair Goudie, Colin Helliwell, Marcus Jones
-
Publication number: 20020133648Abstract: 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: ApplicationFiled: December 28, 2001Publication date: September 19, 2002Applicant: Zarlink Semiconductor LimitedInventors: Alistair Goudie, Colin Helliwell, Marcus Jones
-
Publication number: 20020129213Abstract: 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: ApplicationFiled: December 28, 2001Publication date: September 12, 2002Applicant: Zarlink Semiconductor LimitedInventors: Alistair Goudie, Colin Helliwell, Marcus Jones