Programming Interface Information: This information is NOT intended to be
used as Programming Interfaces of z/VM.

TCHBK

Prolog
Control Block Contents
TCHBK DSECT
TCHSTDFM DSECT
Storage Layout
Cross Reference

TCHBK Prolog

 Name       : HCPTCHBK
 Description: Track Cache Hash block
 DSECT      : TCHBK
 Function   : To provide mapping of a full track cache hash
              table entry.
              The data is stored right in the hash table.
              Open hashing scheme is used with collisions.
 Overview and Terminology -
              The MDC HASH TABLE logically consists
              of a BASE TABLE and COLLISION NODEs.
              Each MDC eligible track is represented by a
              unique fullword KEY.  A hashing algorithm is
              used to convert the key to the address of an
              entry in the base table called a BASE NODE.
              Although each key is unique, multiple keys may
              hash to the same base node causing a
              COLLISION. Collision nodes are assigned from
              storage that is not part of the base table.
              A TCHBK is a 3 word entity that contains
              or provides access to the data structures
              required to serialize and process a single
              track within the Minidisk cache.  A TCHBK
              can appear in a base node or a collision node.
              Whereas a base node consists entirely of one
              TCHBK, a collision node additionally contains
              a one word prefix (see below and HCPCNODE).
 Created by :
              Individual empty entries are filled in by
              HCPFTHRD. The frames that form the base hash
              table is obtained by HCPFTHIN. The first
              collision frame is obtained in HCPFTHIN while
              subsequent frames are acquired by HCPFTHRD as
              needed.
                                                             *
               Individual entries are cleared by             *
                  HCPFTHRD, HCPFTHEX, HCPFTHDR, HCPFTHDC,    *
                  HCPFTHSD, HCPFTHUD                         *
               The collection of TCHBKs that form the actual *
                  hash table is deleted by                   *
                  HCPFTHRD, HCPFTHEX, HCPFTHDR, HCPFTHDC,    *
                  HCPFTHSD, HCPFTHIN, HCPFTHRH, HCPFTHFH,    *
                  HCPFTHQH
 Deleted by :

 

TCHBK Control Block Content

TCHBK DSECT

Hex   Dec Type/Val   Lng Label (dup)    Comments
---- ---- --------- ---- -------------- --------
0000    0 Structure      TCHBK          Track Cache Hash block
0000    0 Signed       4 TCHKEY         Hash key
0004    4 Signed       4 TCHTKFMT       This field either points to or
                                        contains the track format data
                                        for standard tracks
          00000AD4       TCHCOLFG       PFX8000S When this bit is on,
                                        TCHTKFMT contains the address of
                                        a collision node. The 1st word of
                                        that node contains the TCHTKFMT
                                        data for this node.
0008    8 Address      4 TCHCPEBK (0)   CPEBK address if this is a CPEBK
                                        node.
     High order bit of TCHCPEBK indicates that an Unconditional Delete
     (often referred to as THUD) is required. Note that if this bit is on,
     the remainder of TCHCPEBK may be zero. I.E. only an unconditional
     delete is deferred. See also CNOCPEBK.
          1... ....      TCHUDREQ       X'80' Unc. Delete required *
     Start of TCHADRLX definition
0008    8 Address      4 TCHADRLX (0)   Address, lock, flags, DPS index
                                        Form: SSSPPLII SSS is segment
                                        number PP is page number L is
                                        lock nibble II is flags and DPS
                                        index
     High order bit of TCHADRLX indicates if there are any XSTORE blocks for
     this TCHBK.
          1... ....      TCHXSTOR       X'80' This TCHBK has XSTORE
                                        blocks After an XSTORE PGIN/PGOUT
                                        error this bit may be on when no
                                        PTEs are in XSTORE for this
                                        TCHBK.
0008    8 Bitstring    1 * (2)          First 16 bits of SSSPP (SSSP)
000A   10 Bitstring    1 TCHLOCK        Lock nibble (low 4 bits) High 4
                                        bits are rightmost 'P' of Vaddr
          .... 1...      TCHDEFER       X'08' Processes deferred on CPEBK
                                        or flush wants this entry
                                        quiesced when current owner is
                                        done.
          .... .1..      TCHMAX         X'04' High bit of share
          .... .11.      TCHMAXS        X'06' Max shares
          .... .111      TCHEXCL        X'07' Exclusive use indication
          .... ...1      TCHSHAR1       X'01' Shared once
          .... 1111      TCHLKBTS       TCHDEFER+TCHEXCL X'0F' - just the
                                        lock nibble
          0TCHLOCK       TCHLKINC       256 Value to add one to lock when
                                        lock byte is referenced as part
                                        of the entire TCHADRLX field.
     of Vaddr
000B   11 Bitstring    1 TCHTBENT       Relative table entry
          11.. ....      TCHASPAC       X'C0' These bits identify the
                                        address space used for caching
                                        Note: TCMALMSK and TCMALSHF
                                        depend on these bits
          ..11 1111      TCHIXMSK       X'3F' Bits to hold DPSBK index
                                        See also TCMIXMSK.
     Notes : the fields TCMALMSK and TCMALSHF are used to isolate and
     manipulate the TCHASPAC bits.
     End of TCHADRLX definition
          0000000C       TCHSIZEB       *-TCHBK Size of hash entry in
                                        bytes
     The track format data for a standard record.
     This data may appear in the 2nd word of a TCHBK or may be pointed to by
     that word (when bit 0 is on).
     HCPMDCF will return this information in a specified register when
     GET_SHARED or GET_EXCLUSIVE is specified on the HCPMDCF MACRO.

TCHSTDFM DSECT

Hex   Dec Type/Val   Lng Label (dup)    Comments
---- ---- --------- ---- -------------- --------
0000    0 Structure      TCHSTDFM       Track Cache Hash block
0000    0 Signed       2 TCHCYL         CC of Count fields (std)
0002    2 Bitstring    1 TCHFRN         First record number (std)
0003    3 Bitstring    1 TCHLRN         Lowest record number (std)

 

TCHBK Storage Layout

          
*** TCHBK - Track Cache Hash block
*
*     +---------------------------+---------------------------+
*   0 |          TCHKEY           |         TCHTKFMT          |
*     +-------------+------+------+---------------------------+
*   8 |/////////////|:LOCK |:TBENT| C
*     +-------------+------+------+
*
*** TCHBK - Track Cache Hash block
          
*** TCHSTDFM - Track Cache Hash block
*
*     +-------------+------+------+
*   0 |   TCHCYL    |TCHFRN|TCHLRN| 4
*     +-------------+------+------+
*
*** TCHSTDFM - Track Cache Hash block

 

TCHBK Cross Reference

Symbol         Dspl Value
-------------- ---- -----
TCHADRLX       0008
TCHASPAC       000B C0
TCHCOLFG       0004 00000AD4
TCHCPEBK       0008
TCHCYL         0000
TCHDEFER       000A 08
TCHEXCL        000A 07
TCHFRN         0002
TCHIXMSK       000B 3F
TCHKEY         0000
TCHLKBTS       000A 0F
TCHLKINC       000A 0TCHLOCK
TCHLOCK        000A
TCHLRN         0003
TCHMAX         000A 04
TCHMAXS        000A 06
TCHSHAR1       000A 01
TCHSIZEB       000B 0000000C
TCHTBENT       000B
TCHTKFMT       0004
TCHUDREQ       0008 80
TCHXSTOR       0008 80

This information is based on z/VM V3R1.0.
Last updated on 29 Mar 2001 at 16:53:10 EDT.
Copyright IBM Corporation, 1990, 2001