Datasheet

Processor Uncore Configuration Registers
524 Datasheet, Volume 2
4.5.3.3 LocalSemaphore[0:1]—Local Semaphore 0 Register
unCore Semaphore register is a resource shared by all threads even though it has
access and view for each one of the threads. Each one of the fields is identified to be a
shared or a dedicated element.
LocalSemaphore[0:1]
Bus: 1 Device: 11 Function: 3 Offset: A0h, A4h
Bit Attr
Reset
Value
Description
31:28 WO 0000b
Requestor Core ID
Core ID of the requesting core
27 WO 0b
Requester Thread
The thread id of the requester
26:23 RO 0h Pending Request from Thread - Reserved for additional cores
22:7 RO-V 0000h
Pending Request from Thread
This field indicates the threads that have a pending request for Semaphore
ownership.
bit ’i’ in the field indicate a pending request for 2*CID+TID (C0T0, C0T1, C1T0,...)
6:3 RO-V 0000b
Current Core ID
This field indicates the CID of the thread that currently owns the semaphore.
When the semaphore is free (Busy==0), this bit is undefined.
’n’ = Core number
2RO-V0b
Current Thread
This bit indicate the TID of the thread that currently owns the semaphore.
When the semaphore is free (Busy==0), this bit is undefined.
0 = Thread 0
1 = Thread 1
1RW-V 0b
Busy Acquired Release
Read - Bus status :
0 = The semaphore s currently free.
1 = The semaphore is currently busy by one of the threads.
Write - Acquire request :
0 = Release the ownership/request of the semaphore. It cause the pending bit for
the thread to be cleared.
1 = Request the ownership of the semaphore. It cause the pending bit for the
thread to be set.
uCode should poll the acquire value until ownership is granted.
0WO0b
Acquire or Override
The bit has different meanings for read and write.
Write - Override acquisition :
0 = No effect
1 = Override. Take ownership of semaphore ignoring any other setting or
requests.
This bit has no status directly associated with it. There are different operations
associated with the read and write operations.