Description – FUJITSU Implementation Supplement Fujitsu SPARC64 V User Manual

Page 67

Advertising
background image

56

SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V • Release 1.0, 1 July 2002

Description

The memory barrier instruction,

MEMBAR

, has two complementary functions: to

express order constraints between memory references and to provide explicit control
of memory-reference completion. The

membar_mask

field in the suggested assembly

language is the concatenation of the

cmask

and

mmask

instruction fields.

The

mmask

field is encoded in bits 3 through 0 of the instruction.

TABLE A-5

specifies

the order constraint that each bit of

mmask

(selected when set to 1) imposes on

memory references appearing before and after the

MEMBAR

. From zero to four mask

bits can be selected in the

mmask

field.

The

cmask

field is encoded in bits 6 through 4 of the instruction. Bits in the

cmask

field, described in

TABLE A-6

, specify additional constraints on the order of memory

references and the processing of instructions. If

cmask

is zero, then

MEMBAR

enforces

the partial ordering specified by the

mmask

field; if

cmask

is nonzero, then

completion and partial order constraints are applied.

TABLE A-5

Order Constraints Imposed by

mmask

Bits

Mask Bit

Name

Description

mmask

<3>

#StoreStore

The effects of all stores appearing before the

MEMBAR

instruction must be

visible to all processors before the effect of any stores following the

MEMBAR

.

Equivalent to the deprecated

STBAR

instruction. Has no effect on SPARC64 V

since all stores are performed in program order.

mmask

<2>

#LoadStore

All loads appearing before the

MEMBAR

instruction must have been performed

before the effects of any stores following the

MEMBAR

are visible to any other

processor. Has no effect on SPARC64 V since all stores are performed in
program order and must occur after performance of any load.

mmask

<1>

#StoreLoad

The effects of all stores appearing before the

MEMBAR

instruction must be

visible to all processors before loads following the

MEMBAR

may be performed.

mmask

<0>

#LoadLoad

All loads appearing before the

MEMBAR

instruction must have been performed

before any loads following the

MEMBAR

may be performed. Has no effect on

SPARC64 V since all loads are performed after any prior loads.

TABLE A-6

Bits in the

cmask

Field

Mask Bit

Function

Name

Description

cmask

<2>

Synchronization
barrier

#Sync

All operations (including nonmemory reference operations)
appearing before the

MEMBAR

must have been performed, and

the effects of any exceptions become visible before any
instruction after the

MEMBAR

may be initiated.

cmask

<1>

Memory issue
barrier

#MemIssue

All memory reference operations appearing before the

MEMBAR

must have been performed before any memory operation after
the

MEMBAR

may be initiated. Equivalent to

#Sync

in

SPARC64 V.

cmask

<0>

Lookaside
barrier

#

Lookaside

A store appearing before the

MEMBAR

must complete before

any load following the

MEMBAR

referencing the same address

can be initiated. Equivalent to

#Sync

in SPARC64 V.

Advertising