Patents by Inventor Michael David May

Michael David May 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: 9594720
    Abstract: A processing apparatus comprising: a bus; a first processor connected to the bus and configured to communicate over the bus according to a bus protocol; a second, multithread processor; and an inter-thread interconnect based on a system of channels. The apparatus also comprises an interface between the bus and the inter-thread interconnect, comprising a bus side implementing the bus protocol and an interconnect side for interfacing with the system of channels. The first processor is thereby operable to communicate with a designated one of said threads via the bus and a respective channel of the inter-thread interconnect.
    Type: Grant
    Filed: October 21, 2013
    Date of Patent: March 14, 2017
    Assignee: Xmos Limited
    Inventors: Andrew Stanford-Jason, Michael David May, Nigel Jürgen Toon, Daniel John Pelham Wilkinson
  • Patent number: 9367321
    Abstract: The invention provides a processor comprising: an execution unit, and a thread scheduler configured to schedule a plurality of threads for execution by the execution unit in dependence on a respective runnable status for each thread. The execution unit is configured to execute thread scheduling instructions which manage the runnable statuses. The thread scheduling instructions including at least: one or more source event enable instructions each of which sets an event source to a mode in which it generates an event dependent on activity occurring at that source, and a wait instruction which sets one of said runnable statuses to suspended pending one of the events upon which continued execution of the respective thread depends. The continued execution comprises retrieval of a continuation point vector for the respective thread.
    Type: Grant
    Filed: March 14, 2007
    Date of Patent: June 14, 2016
    Assignee: XMOS LIMITED
    Inventor: Michael David May
  • Publication number: 20150113184
    Abstract: A processing apparatus comprising: a bus; a first processor connected to the bus and configured to communicate over the bus according to a bus protocol; a second, multithread processor; and an inter-thread interconnect based on a system of channels. The apparatus also comprises an interface between the bus and the inter-thread interconnect, comprising a bus side implementing the bus protocol and an interconnect side for interfacing with the system of channels. The first processor is thereby operable to communicate with a designated one of said threads via the bus and a respective channel of the inter-thread interconnect.
    Type: Application
    Filed: October 21, 2013
    Publication date: April 23, 2015
    Applicant: XMOS Limited
    Inventors: Andrew STANFORD-JASON, Michael David MAY, Nigel Jürgen TOON, Daniel John Pelham WILKINSON
  • Patent number: 8966488
    Abstract: The invention provides a processor comprising an execution unit arranged to execute multiple program threads, each thread comprising a sequence of instructions, and a plurality of synchronisers for synchronising threads. Each synchroniser is operable, in response to execution by the execution unit of one or more synchroniser association instructions, to associate with a group of at least two threads. Each synchroniser is also operable, when thus associated, to synchronise the threads of the group by pausing execution of a thread in the group pending a synchronisation point in another thread of that group.
    Type: Grant
    Filed: July 6, 2007
    Date of Patent: February 24, 2015
    Assignee: XMOS Ltd.
    Inventors: Michael David May, Peter Hedinger, Alastair Dixon
  • Patent number: 8898438
    Abstract: The invention provides a processor comprising an execution unit for executing multiple threads, each thread comprising a sequence of instructions and each thread being designated to handle activity from at least one specified source. The processor also comprises a thread scheduler for scheduling a plurality of threads to be executed by the execution unit, said scheduling being based on the respective activity handled by the threads; and a plurality of sets of registers connected to the execution unit. Each set of registers is arranged to store information representing a respective one of the plurality of threads, at least a part of the information being accessible by the execution unit for use in executing the respective thread when scheduled.
    Type: Grant
    Filed: March 14, 2007
    Date of Patent: November 25, 2014
    Assignee: XMOS Ltd.
    Inventor: Michael David May
  • Patent number: 8347312
    Abstract: The invention relates to a device comprising a processor, the processor comprising: an execution unit for executing multiple threads, each thread comprising a sequence of instructions; and a plurality of sets of thread registers, each set arranged to store information relating to a respective one of the plurality of threads. The processor also comprises circuitry for establishing channels between thread register sets, the circuitry comprising a plurality of channel terminals and being operable to establish a channel between one of the thread register sets and another thread register set via one of the channel terminals and another channel terminal. Each channel terminal comprises at least one buffer operable to buffer data transferred over a thus established channel and a channel terminal identifier register operable to store an identifier of the other channel terminal via which that channel is established.
    Type: Grant
    Filed: July 6, 2007
    Date of Patent: January 1, 2013
    Assignee: XMOS Limited
    Inventors: Michael David May, Peter Hedinger, Alastair Dixon
  • Patent number: 8224884
    Abstract: The invention provides a method of transmitting messages over an interconnect between processors, each message comprising a header token specifying a destination processor and at least one of a data token and a control token. The method comprises: executing a first instruction on a first one of the processors to generate a data token comprising a byte of data and at least one additional bit to identify that token as a data token, and outputting the data token from the first processor onto the interconnect as part of one of the messages. The method also comprises executing a second instruction on said first processor to generate a control token comprising a byte of control information and at least one additional bit to identify that token as a control token, and outputting the control token from the first processor onto the interconnect as part of one of the messages.
    Type: Grant
    Filed: February 7, 2008
    Date of Patent: July 17, 2012
    Assignee: XMOS Ltd.
    Inventor: Michael David May
  • Patent number: 8219789
    Abstract: The invention provides a processor comprising a first port operable to generate a first indication dependent on a first activity at the first port, and a second port operable to generate a second indication dependent on a second activity at the second port. The processor also comprises an execution unit arranged to execute multiple threads; and a thread scheduler connected to receive the indications and arranged to schedule the multiple threads for execution by the execution unit based on those indications. The scheduling includes suspending the execution of a thread until receipt of the respective ready signal. The first activity and the second activity are each associated with respective corresponding threads.
    Type: Grant
    Filed: March 14, 2007
    Date of Patent: July 10, 2012
    Assignee: XMOS Ltd.
    Inventor: Michael David May
  • Patent number: 8185722
    Abstract: The invention provides a processor comprising an execution unit and a thread scheduler configured to schedule a plurality of threads for execution by the execution unit in dependence on a respective status for each thread. The execution unit is configured to execute thread scheduling instructions which manage said statuses, the thread scheduling instructions including at least: a thread event enable instruction which sets a status to event-enabled to allow a thread to accept events, a wait instruction which sets the status to suspended pending at least one event upon which continued execution of the thread depends, and a thread event disable instruction which sets the status to event-disabled to stop the thread from accepting events. The continued execution comprises retrieval of a continuation point vector for the thread.
    Type: Grant
    Filed: March 14, 2007
    Date of Patent: May 22, 2012
    Assignee: XMOS Ltd.
    Inventor: Michael David May
  • Patent number: 8185719
    Abstract: Each possessor node in an array of nodes has a respective local node address, and each local node address comprises a plurality of components having an order of addressing significance from most to least significant. Each node comprises: mapping means configured to map each component of the local node address onto a respective routing direction, and a switch arranged to receive a message having a destination node address identifying a destination node. The switch comprises: means for comparing the local node address to the destination node address to identify a the most significant non-matching component; and means for routing the message to another node, on the condition that the local node address does not match the destination node address, in the direction mapped to the most significant non-matching component.
    Type: Grant
    Filed: November 18, 2010
    Date of Patent: May 22, 2012
    Assignee: XMOS Limited
    Inventor: Michael David May
  • Patent number: 8139601
    Abstract: The invention provides a method of transmitting one or more tokens over a link between processors, whereby configurations of logical transitions on the lines are used to signal respective codes. The method comprises: transmitting a token by signalling a sequence of codes selected from said codes on the lines; and transmitting one or more additional codes on the lines to ensure that the total number of logical transitions on each line returns the link to a quiescent state following the signalling of said one or more tokens and additional codes.
    Type: Grant
    Filed: February 7, 2008
    Date of Patent: March 20, 2012
    Assignee: Xmos Limited
    Inventor: Michael David May
  • Patent number: 7962717
    Abstract: Each possessor node in an array of nodes has a respective local node address, and each local node address comprises a plurality of components having an order of addressing significance from most to least significant. Each node comprises: mapping means configured to map each component of the local node address onto a respective routing direction, and a switch arranged to receive a message having a destination node address identifying a destination node. The switch comprises: means for comparing the local node address to the destination node address to identify a the most significant non-matching component; and means for routing the message to another node, on the condition that the local node address does not match the destination node address, in the direction mapped to the most significant non-matching component.
    Type: Grant
    Filed: March 14, 2007
    Date of Patent: June 14, 2011
    Assignee: XMOS Limited
    Inventor: Michael David May
  • Patent number: 7958333
    Abstract: A processor and method for executing threads. The processor comprises multiple instruction buffers, each for buffering the instructions of a respective associated thread, and an instruction issue stage for issuing instructions from the instruction buffers to a memory access stage. The memory access stage includes logic adapted to detect whether a memory access operation is defined in each issued instruction, and to fetch another instruction if no memory access operation is detected.
    Type: Grant
    Filed: May 30, 2007
    Date of Patent: June 7, 2011
    Assignee: XMOS Ltd.
    Inventor: Michael David May
  • Publication number: 20110131396
    Abstract: One aspect of the present invention provides processor comprising: an execution unit arranged to execute a sequence of instructions each comprising a respective opcode; and a counter coupled to the execution unit and arranged to generate a periodically updated counter value during execution. The execution unit comprises logic configured to identify an opcode representing a trap-if-late instruction in said sequence, and in response to execute the trap-if-late instruction by comparing a target value to the counter value and generating an exception on condition that the counter value represents a time that is late relative to said target value. Another aspect provides a compiler for inserting trap-if-late instructions based on timing constraints in higher-level code.
    Type: Application
    Filed: December 1, 2009
    Publication date: June 2, 2011
    Applicant: XMOS Limited
    Inventors: Michael David May, Hendrik Lambertus Muller
  • Patent number: 7948060
    Abstract: An integrated circuit and corresponding method of manufacture. The integrated circuit has a die comprising: an outer strengthening ring around a periphery of the die, the outer ring having one or more gaps; and an inner strengthening ring within the outer ring and around interior circuitry of the die, the inner ring having one or more gaps offset from the gaps of the outer ring. One or more conducting members are electrically isolated from said rings and electrically connected to the interior circuitry, each member passing through a gap of the inner ring and through a gap of the outer ring.
    Type: Grant
    Filed: July 1, 2008
    Date of Patent: May 24, 2011
    Assignee: XMOS Limited
    Inventors: Ken Williamson, Michael David May, Simon Christopher Dequin Clemow
  • Publication number: 20110066825
    Abstract: Each possessor node in an array of nodes has a respective local node address, and each local node address comprises a plurality of components having an order of addressing significance from most to least significant. Each node comprises: mapping means configured to map each component of the local node address onto a respective routing direction, and a switch arranged to receive a message having a destination node address identifying a destination node. The switch comprises: means for comparing the local node address to the destination node address to identify a the most significant non-matching component; and means for routing the message to another node, on the condition that the local node address does not match the destination node address, in the direction mapped to the most significant non-matching component.
    Type: Application
    Filed: November 18, 2010
    Publication date: March 17, 2011
    Applicant: XMOS LTD.
    Inventor: Michael David MAY
  • Patent number: 7676653
    Abstract: The invention provides a decode unit for decoding instructions in a processor. The decode unit comprises opcode decoding logic, operand decoding logic, and a sixteen-bit input. The opcode decoding logic is operable to determine an opcode using five bits of the input and the operand decoding logic is operable to determine three four-bit operand elements from the remaining eleven bits of the input, the three operand elements each having one of twelve possible binary values. The operand decoding logic is operable to decode an encoded group of the eleven bits to determine a first part of each of the three operand elements, and to read verbatim a verbatim group of the eleven bits to determine a second part of each of the three operand elements.
    Type: Grant
    Filed: May 9, 2007
    Date of Patent: March 9, 2010
    Assignee: XMOS Limited
    Inventor: Michael David May
  • Publication number: 20100001405
    Abstract: An integrated circuit and corresponding method of manufacture. The integrated circuit has a die comprising: an outer strengthening ring around a periphery of the die, the outer ring having one or more gaps; and an inner strengthening ring within the outer ring and around interior circuitry of the die, the inner ring having one or more gaps offset from the gaps of the outer ring. One or more conducting members are electrically isolated from said rings and electrically connected to the interior circuitry, each member passing through a gap of the inner ring and through a gap of the outer ring.
    Type: Application
    Filed: July 1, 2008
    Publication date: January 7, 2010
    Applicant: XMOS Ltd.
    Inventors: Ken Williamson, Michael David May, Simon Christopher Dequin Clemow
  • Patent number: 7617386
    Abstract: A processor has an interface portion and an interior environment. The interface portion comprises: at least one port arranged to receive a current time value; a first register associated with the port and arranged to store a trigger time value; and comparison logic configured to detect whether the current time value matches the trigger time value and, provided that said match is detected, to transfer data between the port and an external environment and alter a ready signal to indicate the transfer. The internal environment comprises: an execution unit for transferring data between the at least one port and the internal environment; and a thread scheduler for scheduling a plurality of threads for execution by the execution unit, each thread comprising a sequence of instructions. The scheduling includes scheduling one or more of said threads for execution in dependence on the ready signal.
    Type: Grant
    Filed: April 17, 2007
    Date of Patent: November 10, 2009
    Assignee: XMOS Limited
    Inventors: Michael David May, Peter Hedinger, Alastair Dixon
  • Patent number: 7613909
    Abstract: A processor has an interface portion and an internal environment. The interface portion comprises at least one port. The internal environment comprises an execution unit arranged to execute instructions in dependence on a first timing signal and to transfer data between the interior portion and the at least one port in dependence on the first timing signal; and a thread scheduler for scheduling a plurality of threads for execution by the execution unit, each thread comprising a sequence of instructions and the thread scheduler being arranged to schedule the threads in dependence on the first timing signal. The port is arranged to transfer data between the port and an external environment in dependence on a second timing signal, and to alter a ready signal in dependence on the second timing signal to indicate a transfer of data with the external environment. The thread scheduler is configured to schedule one or more associated threads for execution in dependence on the ready signal.
    Type: Grant
    Filed: April 17, 2007
    Date of Patent: November 3, 2009
    Assignee: XMOS Limited
    Inventors: Michael David May, Peter Hedinger, Alastair Dixon