Questions about SME

Hi,

I'm new here. I have some questions about the SME in armv9 architecture.

The introduction of SME is shown below:

The new SME ZA (Z Array) storage is a 2D square byte array of dimension (SVL in bytes) x (SVL in bytes).
The ZA array can be accessed as SVL-bit vectors that contain 8-bit, 16-bit, 32-bit, 64-bit, or 128-bit elements
The number of ZA array vectors is the number of bytes in SVL. For example, if SVL is 256-bit, then the number of ZA array vectors is 32.

But I'm confused about it.

If SVL is 256-bit, the dimension of SME should be 32 x 32 bytes.

Why is the number of ZA array vectors the number of bytes in SVL. If so, then the size of each ZA array vector is (256/32) * 256 = 2048 bits, which indicates that the row size of each array vector is 8 bits.

Thanks for your help.

Best,

Tengyang Zheng

  • Hi ,

    > Why is the number of ZA array vectors the number of bytes in SVL. If so, then the size of each ZA array vector is (256/32) * 256 = 2048 bits, which indicates that the row size of each array vector is 8 bits.

    See the SME Programmer's Guide; the number of ZA array vectors is indeed SVLB as you mentioned, each vector is SVLB bytes and the size of the ZA array is SVLB x SVLB bytes. For your case where SVL = 256 bits, SVLB = 32 bytes, therefore you would have 32 vectors of 32 bytes (256 bits) each, with a ZA array of 32 * 32 = 1024 bytes (8192 bits) total.

    Best regards,

    Vincent.