Revision history   OpenPOWER Library

 10.1.5. PSL ID Register (PSL_ID_An)

 The PSL ID Register (PSL_ID_An) is used to define the linked list of PSLs assigned to service the scheduled processes. Contained in this register are a PSL identifier for the PSL and an identifier for the next PSL in the linked list. Along with the identifier are two flags to indicate if the PSL is the first and/or last PSL in the list.

 The first PSL is responsible for monitoring the sw_command_status word in the scheduled processes area for commands requested by software. After a command is detected, the first PSL performs the requested operation and if required, forwards the command to the next PSL in the list.

 PSLs in the middle of the list perform the requested command when their identifier is written to the psl_chained_command word in the scheduled processes area. It is possible in some scenarios for a PSL in the middle of the list to complete the command. In this case, the sw_command_status word in the scheduled processes area is updated by the PSL completing the command. If the command is not complete, the PSL forwards the command to the next PSL by writing the psl_chained_command word with the identifier of the next PSL in the list.

 When the last PSL detects the command (either in the sw_command_status or the psl_chained_command word), the requested operation is performed and the completion status is written to the sw_command_status word in the scheduled processes area.

 There is one register for each PSL slice. Access to these registers should be privileged. These registers must be accessed using a single 64-bit store operation.

Access Type

Read/Write

 Base Address Offset

 (P1_Base | P1(n)) + x'20'; where n is an AFU number.

Reserved

L

F

 0

 1

 2

 3

 4

 5

 6

 7

 8

 9

 10

 11

 12

 13

 14

 15

 16

 17

 18

 19

 20

 21

 22

 23

 24

 25

 26

 27

 28

 29

 30

 31

NXT_PSL_ID

PSL_ID

 32

 33

 34

 35

 36

 37

 38

 39

 40

 41

 42

 43

 44

 45

 46

 47

 48

 49

 50

 51

 52

 53

 54

 55

 56

 57

 58

 60

 61

 62

 63

 

Bits

Field Name

Description

 0:29

 Reserved

 Reserved.

 30

 L

 Last PSL.

 The last PSL flag indicates that the PSL is the last PSL in the list of PSLs assigned to service the scheduled processes and the software commands. Software commands are not forwarded to the next PSL and the final status can be written to the sw_command_status word.

0

PSL is not the last PSL.

1

1 PSL is the last PSL.

Implementation Note:

 If the PSL implementation does not support multiple PSLs operating on the same Process Element Linked List (that is, chaining PSLs), this field must be read-only and returned as a '1'. System software can read the initial value or write a '0' to this field to determine the PSL's capability to support chaining PSLs.

 31

 F

 First PSL.

 The first PSL flag indicates that the PSL is the first PSL in the list of PSLs assigned to service the scheduled processes and the software commands. The PSL with this flag set monitors the sw_command_status word for requested commands to be performed.

 0 PSL is not the first PSL.

 1 PSL is the first PSL.

0

PSL is not the first PSL.

1

PSL is the first PSL.

Implementation Note:

 If the PSL implementation does not support multiple PSLs operating on the same Process Element Linked List (that is, chaining PSLs), this field must be read-only and returned as a '1'. System software can read the initial value or write a '0' to this field to determine the PSL's capability to support chaining PSLs.

 32:47

 NXT_PSL_ID

 Next PSL identifier.

 The next PSL identifier selects which PSL assigned to service the scheduled processes must perform the operation after the current PSL has serviced the command. When the sw_command_status word is written by system software, the first PSL_ID in the list of PSLs assigned to service the processes performs the requested command. If required, the first PSL forwards the command to the next PSL in the psl_chained_command.

 48:63

 PSL_ID

 PSL identifier.

 The PSL identifier is used to select which PSL assigned to service the scheduled processes must perform the operation. When the sw_command_status word is written by system software, the PSL_ID must be the first in the list of PSLs assigned to service the processes. Each PSL has the ID of the next PSL in the list and forwards the command to the next PSL in the psl_chained_command if required.


loading table of contents...