IP Library Granted Patent US 8,286,180
Granted Patent B2
US 8,286,180 · App. 11/895,618 · Granted Oct 9, 2012

Synchronisation of execution threads on a multi-threaded processor

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,286,180
App. No.
11/895,618
Granted
Oct 9, 2012
Kind
B2
Abstract

Method and apparatus are provided for a synchronizing execution of a plurality of threads on a multi-threaded processor. Each thread is provided with a number of synchronization points corresponding to points where it is advantageous or preferable that execution should be synchronized with another thread. Execution of a thread is paused when it reaches a synchronization point until at least one other thread with which it is intended to be synchronized reaches a corresponding synchronization point. Execution is subsequently resumed. Where an executing thread branches over a section of code which included a synchronization point then execution is paused at the end of the branch until the at least one other thread reaches the synchronization point of the end of the corresponding branch.

Claims (10)

1. A method for synchronising execution of a plurality of threads on a multi-threaded processor, each thread being provided with a number of synchronisation points, the method comprising the steps of:

pausing execution of a thread when it reaches a synchronisation point, or when it branches over a section of code which includes the synchronisation point at the end of the branch;

entering the thread which reaches the synchronisation point into a wait for synchronisation start state;

waiting for at least one other thread with which the thread is intended to be synchronised to reach the corresponding synchronisation point or the end of the branch;

repeatedly checking whether the threads with which a paused thread is to be synchronized have also paused comprising a step of checking the status of at least one bit in a status register for each thread; and

subsequently resuming execution of the thread and the at least one other thread.

2. An apparatus for synchronising execution of a plurality of threads on a multi-thread processor, each thread being provided with a number of synchronisation points, comprising:

means for pausing execution of a thread when it reaches a synchronisation point, or when it branches over a section of code which includes the synchronisation point at the end of the branch, entering the thread which reaches the synchronisation point into a wait for synchronisation start state and waiting for at least one other thread with which the thread is to be synchronised to reach the corresponding synchronisation point or the end of the branch;

means for repeatedly checking whether the threads with which a paused thread is to be synchronised have also paused and additionally comprising means for checking the status of at least one bit in a status register for each thread; and

means for subsequently resuming execution of the thread and the at least one other thread.

Assignments (2)
SECURITY INTEREST Recorded Jul 31, 2024
From: IMAGINATION TECHNOLOGIES LIMITED
To: FORTRESS INVESTMENT GROUP (UK) LTD
Reel/Frame 068221/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2007
From: FOO, YOONG CHERT
To: IMAGINATION TECHNOLOGIES LIMITED
Reel/Frame 020078/0871 →