data.memory.unaligned

Memory supporting partial word access and unaligned addressing.


template <
    typename T,
    auto WordSize,
    auto TotalSize,
    template <typename, auto> typename Memory = memory
    >
class unaligned_read_unaligned_write_memory §source

Memory supporting reads/writes of up to WordSize elements per cycle at aligned or unaligned address. The class internally instantiates WordSize logical memories that are bitsizeof T wide and TotalSize / WordSize deep.

Parameters

  • typename T
    

    Type of the memory element

  • auto WordSize
    

    Number of elements per word

  • auto TotalSize
    

    Total number of elements in memory

  • template <typename, auto> typename Memory = memory
    

    Memory implementation

Aliases

Methods

template <
    typename T,
    auto WordSize,
    auto ReadWordSize,
    auto TotalSize,
    template <typename, auto> typename Memory = memory
    >
class unaligned_read_aligned_write_memory §source

Memory capable of aligned or unaligned reads of ReadWordSize elements per cycle and WordSize element writes aligned to WordSize.

Parameters

  • typename T
    

    Type of the memory element.

  • auto WordSize
    

    Number of elements per word.

  • auto ReadWordSize
    

    Number of elements to be returned per read. Must be power-of-2 fraction or integer multiple of WordSize.

  • auto TotalSize
    

    Total number of elements in memory. Memory width is WordSize * bitsizeof(T) bits. Memory depth is TotalSize / WordSize words.

  • template <typename, auto> typename Memory = memory
    

    Memory implementation.

Aliases

Methods