4th Gen Intel® Xeon® Processor Scalable Family, Codename Sapphire Rapids

Data Sheet Vol. 2 Registers

ID Date Version Classification
814094 12/06/2024 01 Public
Document Table of Contents

TAD Write (TAD_WR) — Offset 240h

TAD mapping:

This register allows indirect access to write each of the 20 internal TAD table entries.

The reset value for all the fields in the internal TAD table is 0, except for AddressLimit, which resets to all-1

This internal TAD table gets reset on a cold reset (pwr pulse) only.

To write a TAD entry:

1. Configure all fields and at the same time set the write-enable bit to 1.

Type Size Offset Default
PCI 64 bit [B:30, D:12, F:0] + 240h 0000000000000000h

Register Level Access:

BIOS Access SMM Access OS Access Policy Group ID
RW RW R 1
Bit Range Default & Access Field Name (ID): Description
63:52

0h

RO

Reserved
51:26

0000000h

RW/P

ADDRESSLIMIT:

Limit address

Specifies the upper limit (inclusive) for address[51:26] (64MB aligned) to be part of this memory region.

An address hits a particular TAD entry if all of the following conditions are true (where number):

TadVld[N] == 1

address[51:26] <= AddressLimit[N]

address[51:26] > AddressLimit[N-1] (only for N>0)

System firmware must program the TAD AddressLimit fields such that AddressLimit[N] > AddressLimit[N-1] for all N>0 with TadVld[N]==1.

25

0h

RO

Reserved
24

0h

RW/P

DEDUPVLD:

DedupRegion (DedupVld)

This TAD entry represents a region for which CHA uses Dedup IP to access memory

Setting this bit would mean m2mem would use a dedicated VC to issue transactions to the memory controller

which will be routed via the Dedup IP to MC

23

0h

RW/P

LOWBW:

Low Bandwidth Memory (LowBW):

This TAD entry represents a region for which CHA uses a low bandwidth credit.

Setting this bit causes m2mem to set the ddrt_​cdt bit on BL credit returns for writes

targeting this region.

22

0h

RW/P

FRCNPWR:

Force Non-Posted Writes (FrcNPWr):

This TAD entry represents region that requires NP write semantics on CMI.

Only applies to the far-memory region if this is a 2LM region.

21

0h

RW/P

SECONDARY1ST:

Read secondary mirror channel first (Secondary1st):

For this memory region, read secondary mirror channel first.

Used in mirroring to prevent (non error flow) accesses to a primary mirror

channel for a bad primary region/address. Note, if an error flow does get invoked

because of an error on secondary for an access to this region then the primary storage

will still be accessed (when channel not failed over).

20

0h

RW/P

MIRROR:

Mirror region:

This TAD entry represents a mirroring region.

19

0h

RW/P

NMCACHEABLEVLD:

Near-Memory Cacheable Valid (NmCacheableVld):

This TAD entry represents a near-memory cached region, that is, not a 1LM region.

18

0h

RW/P

DDR4:

DDR4:

This TAD entry represents near-memory at NMC or 1LM DDR4.

In non-Xtile config: this just represents the 1LM DDR4 region.

In Xtile config: this represents NM access at the near-memory controller (or DDR4 access at the FMC).

BIOS to calculate as follows:

17

0h

RW/P

BLKVLD:

Block Region Valid (BlkVld):

This TAD entry represents a block region.

16

0h

RW/P

PMEMVLD:

PMem Region Valid (PmemVld):

This TAD entry represents a persistent memory region.

15

0h

RW/P

NONPERSISTENTFM:

Non-Persistent Far Memory (NonPersistentFm):

This TAD entry represents a near-memory cached region in which the far-memory is non-persistent.

This bit only takes effect when NmCacheableVld for this TAD entry is set, and should only be set if

the far-memory being cached by near-memory is not persistent (that is, is not DDRT).

Note:This bit only works if the far-memory is on a different MC tile than the near-memory. It is

currently not supported where a single MC has both near-memory AND far-memory and the far-memory being

cached is not persistent/DDRT

14:12

0h

RO

Reserved
11:8

0h

RW/P

DDRTADID:

DDR TAD entry (DDRtadId):

DDR TAD entry associated with this TAD table entry. M2mem puts no restrictions on the values here, but

this field should be programmed consistent with the channel

the channel, hence the current legal range is 0-11. DDR4 can only use the first 8 TAD entries, so the

legal range is 0-7 for regions with the DDR4 bit set.

HBM should only use TAD entry 0.

7

0h

RW/P

TADVLD:

TAD Table Entry Valid (TadVld):

Specifies whether this TAD entry in the TAD table is valid.

It is illegal to program TadVld[N]==1 if TadVld[N-1]==0 (for N>0).

6

0h

RW/V

TADWREN:

TAD Write (TadWrEn):

Write the TAD table entry with the information contained in this register.

Hardware will write the TAD table entry when seeing a zero-to-one transition on this bitfield.

Hardware will reset this bit to 0 the cycle after it is written to 1.

5

0h

RO

Reserved
4:0

00h

RW/P

TADID:

TAD Table SAD Entry/Index (TadId):

Specifies what TAD entry in the TAD table to write indirectly through this register.

There are 20 TAD entries so the legal range is 0-19.