AWGN short = AWGN, long = additive white Gaussian noise, list = Additive White
Gaussian Noise, tag = abbrev ADMM short = ADMM, long = alternating direction
method of multipliers, list = Alternating Direction Method of Multipliers, tag
= abbrev MGMC short = MGMC, long = multi-group multi-casting, list = multi-
group multi-casting, tag = abbrev SGMC short = SGMC, long = single-group
multi-casting, list = single-group multi-casting, tag = abbrev AoA short =
AoA, long = angle-of-arrival, list = Angle-of-Arrival, tag = abbrev AoD short
= AoD, long = angle-of-departure, list = Angle-of-Departure, tag = abbrev KKT
short = KKT, long = Karush-Kuhn-Tucker, list = Karush-Kuhn-Tucker, tag =
abbrev MMF short = MMF, long = max-min-fairness, list = max-min-fairness, tag
= abbrev WMMF short = WMMF, long = weighted max-min-fairness, list = max-min-
fairness, tag = abbrev BB short = BB, long = base band, list = Base Band, tag
= abbrev BC short = BC, long = broadcast channel, list = Broadcast Channel,
tag = abbrev BS short = BS, long = base station, list = Base Station, tag =
abbrev BR short = BR, long = best response, list = Best Response, tag = abbrev
CB short = CB, long = coordinated beamforming, list = Coordinated Beamforming,
tag = abbrev CC short = CC, long = coded caching, list = Coded Caching, tag =
abbrev CE short = CE, long = channel estimation, list = Channel Estimation,
tag = abbrev CoMP short = CoMP, long = coordinated multi-point transmission,
list = Coordinated Multi-Point Transmission, tag = abbrev CRAN short = C-RAN,
long = cloud radio access network, list = Cloud Radio Access Network, tag =
abbrev CSE short = CSE, long = channel specific estimation, list = Channel
Specific Estimation, tag = abbrev CSI short = CSI, long = channel state
information, list = Channel State Information, tag = abbrev CSIT short = CSIT,
long = channel state information at the transmitter, list = Channel State
Information at the Transmitter, tag = abbrev CU short = CU, long = central
unit, list = Central Unit, tag = abbrev D2D short = D2D, long = device-to-
device, list = Device-to-Device, tag = abbrev DE-ADMM short = DE-ADMM, long =
direct estimation with alternating direction method of multipliers, list =
Direct Estimation with Alternating Direction Method of Multipliers, tag =
abbrev DE-BR short = DE-BR, long = direct estimation with best response, list
= Direct Estimation with Best Response, tag = abbrev DE-SG short = DE-SG, long
= direct estimation with stochastic gradient, list = Direct Estimation with
Stochastic Gradient, tag = abbrev DFT short = DFT, long = discrete fourier
transform, list = Discrete Fourier Transform, tag = abbrev DoF short = DoF,
long = degrees of freedom, list = Degrees of Freedom, tag = abbrev DL short =
DL, long = downlink, list = Downlink, tag = abbrev GD short = GD, long =
gradient descent, list = Gradeitn Descent, tag = abbrev IBC short = IBC, long
= interfering broadcast channel, list = Interfering Broadcast Channel, tag =
abbrev i.i.d. short = i.i.d., long = independent and identically distributed,
list = Independent and Identically Distributed, tag = abbrev JP short = JP,
long = joint processing, list = Joint Processing, tag = abbrev LOS short =
LOS, long = line-of-sight, list = Line-of-Sight, tag = abbrev LS short = LS,
long = least squares, list = Least Squares, tag = abbrev LTE short = LTE, long
= Long Term Evolution, tag = abbrev LTE-A short = LTE-A, long = Long Term
Evolution Advanced, tag = abbrev MIMO short = MIMO, long = multiple-input
multiple-output, list = Multiple-Input Multiple-Output, tag = abbrev MISO
short = MISO, long = multiple-input single-output, list = Multiple-Input
Single-Output, tag = abbrev MAC short = MAC, long = multiple access channel,
list = Multiple Access Channel, tag = abbrev MSE short = MSE, long = mean-
squared error, list = Mean-Squared Error, tag = abbrev MMSE short = MMSE, long
= minimum mean-squared error, list = Minimum Mean-Squared Error, tag = abbrev
mmWave short = mmWave, long = millimeter wave, list = Millimeter Wave, tag =
abbrev MU-MIMO short = MU-MIMO, long = multi-user MIMO, list = Multi-User
MIMO, tag = abbrev OTA short = OTA, long = over-the-air, list = Over-the-Air,
tag = abbrev PSD short = PSD, long = positive semidefinite, list = Positive
Semidefinite, tag = abbrev QoS short = QoS, long = quality of service, list =
Quality of Service, tag = abbrev RCP short = RCP, long = remote central
processor, list = Remote Central Processor, tag = abbrev RRH short = RRH, long
= remote radio head, list = Remote Radio Head, tag = abbrev RSSI short = RSSI,
long = received signal strength indicator, list = Received Signal Strength
Indicator, tag = abbrev RX short = RX, long = receiver, list = Receiver, tag =
abbrev SCA short = SCA, long = successive-convex-approximation, list =
Successive-Convex-Approximation, tag = abbrev SG short = SG, long = stochastic
gradient, list = Stochastic Gradient, tag = abbrev SIC short = SIC, long =
successive interference cancellation, list = Successive Interference
Cancellation, tag = abbrev SNR short = SNR, long = signal-to-noise-ratio, list
= Signal-to-Noise Ratio, tag = abbrev SDR short = SDR, long = semi-definite-
relaxation, list = semi-definite-relaxation, tag = abbrev SINR short = SINR,
long = signal-to-interference-plus-noise ratio, list = Signal-to-Interference-
plus-Noise Ratio, tag = abbrev SOCP short = SOCP, long = second order cone
program, list = Second Order Cone Program, tag = abbrev SSE short = SSE, long
= stream specific estimation, list = Stream Specific Estimation, tag = abbrev
SVD short = SVD, long = singular value decomposition, list = Singular Value
Decomposition, tag = abbrev TDD short = TDD, long = time division duplex, list
= Time Division Duplex, tag = abbrev TX short = TX, long = transmitter, list =
Transmitter, tag = abbrev UE short = UE, long = user equipment, list = User
Equipment, tag = abbrev UL short = UL, long = uplink, list = Uplink, tag =
abbrev ULA short = ULA, long = uniform linear array, list = Uniform Linear
Array, tag = abbrev UPA short = UPA, long = uniform planar array, list =
Uniform Planar Array, tag = abbrev WMMSE short = WMMSE, long = weighted
minimum mean-squared error, list = Weighted Minimum Mean-Squared Error, tag =
abbrev WMSEMin short = WMSEMin, long = weighted sum MSE minimization, list =
Weighted sum MSE Minimization, tag = abbrev WBAN short = WBAN, long = wireless
body area network, list = Wireless Body Area Network, tag = abbrev WSRMax
short = WSRMax, long = weighted sum rate maximization, list = Weighted Sum
Rate Maximization, tag = abbrev

# A Low-Subpacketization High-Performance
MIMO Coded Caching Scheme

MohammadJavad Salehi, Hamidreza Bakhshzad Mahmoodi and Antti Tölli
This work is supported by the Academy of Finland under grants no. 319059
(Coded Collaborative Caching for Wireless Energy Efficiency) and 318927
(6Genesis Flagship), and by Vaikuttavuussäätiö under the project Directional
Data Delivery for Wireless Immersive Digital Environments (3D-WIDE).  Centre
for Wireless Communications, University of Oulu, 90570 Oulu, Finland
E-mail<EMAIL_ADDRESS>
###### Abstract

In this paper, we study how coded caching can be efficiently applied to
multiple-input multiple-output (MIMO) communications. This is an extension to
cache-aided multiple-input single-output (MISO) communications, where it is
shown that with an $L$-antenna transmitter and coded caching gain $t$, a
cumulative coded caching and spatial multiplexing gain of $t+L$ is achievable.
We show that, interestingly, for MIMO setups with $G$-antenna receivers, a
coded caching gain larger than MISO setups by a multiplicative factor of $G$
is possible, and the full coded caching and spatial multiplexing gain of
$Gt+L$ is also achievable. Furthermore, we propose a novel algorithm for
building low-subpacketization, high-performance MIMO coded caching schemes
using a large class of existing MISO schemes.

###### Index Terms:

coded caching, MIMO communications, low-subpacketization

##  I Introduction

Wireless communication networks are under mounting pressure to support
exponentially increasing volumes of multimedia content [1], as well as to
support the imminent emergence of new applications such as wireless immersive
viewing [2]. For the efficient delivery of such multimedia content, the work
of Maddah-Ali and Niesen in [3] proposed the idea of _coded caching_ as a
means of increasing the data rates by exploiting cache content across the
network. In a single-stream downlink network of $K$ cache-enabled users who
can pre-fetch data into their cache memories, coded caching enables boosting
the achievable rate by a multiplicative factor proportional to the cumulative
cache size in the entire network. The key to achieving this speedup lies in
the multicasting of carefully created codewords to different groups of users,
such that each user can use its cache content to remove unwanted parts (i.e.,
the interference) from the received signal. With a library of $N$ equal-sized
files, and given that each user can pre-fetch $M$ files into its cache memory
during the so-called placement phase, coded caching enables serving groups of
users of size $t+1$ with any single transmission, where $t:=\frac{KM}{N}$ is
called the coded caching gain. In other words, with coded caching one can
include $t+1$ independent data streams within a single transmission, and
hence, the achievable DoF is increased from one to $t+1$.

Motivated by the growing importance of multi-antenna wireless communications
[4], Shariatpanahi et al. [5, 6] explored the cache-aided MISO setting, for
which it revealed that the same coded caching gain $t$ could be achieved
cumulatively with the spatial multiplexing gain. More exactly, for a downlink
MISO setup with the transmitter-side multiplexing gain of $L$, the work in [6]
developed a method that achieved a DoF of $t+L$, which was later shown in [7]
to be optimal under basic assumptions of uncoded cache placement and one-shot
linear data delivery. Of course, an even larger cache-aided DoF can be
achieved for the same setup using interference-alignment techniques such as in
[8]. However, such techniques are overly complex to implement in practice (cf.
[3]), and hence, in this paper, we also aim at maximizing the DoF with the
underlying assumptions of uncoded cache placement and one-shot linear data
delivery.

Following the introduction of single- and multi-stream coded caching in [3,
9], many later works in the literature addressed their important scaling and
performance issues. For MISO setups, in [10], the authors showed that using
optimized beamformers instead of zero-forcing, one could achieve a better rate
for communications at the finite SNR regime. Also in the same paper, two
interesting methods for adjusting the DoF and controlling the MAC size were
introduced for managing the optimized beamformer design complexity. Similarly,
the exponentially growing subpacketization issue (i.e., the number of smaller
parts each file should be split into) was addressed thoroughly in the
literature, for both single-stream (cf. [11, 12, 13]) and multi-stream
(cf.[14, 15, 16, 17, 18]) setups. Most notably, for multi-stream MISO setups
it was shown in [14, 16, 15] that using signal-level interference cancellation
instead of the bit-level approach, one could substantially reduce the
subpacketization requirement while achieving the same maximum DoF value of
$t+L$. The difference between signal- and bit-level approaches is that with
the former, cache-aided interference cancellation is done prior to decoding,
while with the latter, it is performed after the received signal is decoded.
Of course, as shown in [19, 20], signal-level interference cancellation
modestly decreases the achievable rate (with respect to bit-level approaches),
especially at the finite-SNR regime. Nevertheless, it does not harm the
achievable DoF and yet enables simpler optimized beamformer designs, as
discussed in [15].

In this paper, we extend the applicability of coded caching to MIMO
communications with multi-stream receivers. We show that MIMO coded caching
can be considered as an extension of the shared-cache setting studied in [21,
22]. In shared-cache setups, a number of single-stream users are aided by a
smaller number of shared-cache nodes (which can be, e.g., helper nodes) while
requesting data from a multi-stream transmitting server. To extend this model
to MIMO coded caching, we keep the transmitter in place and replace each
shared-cache node with a multi-stream receiver. Then, if the number of
attached users to the shared-cache node $k$ is $G_{k}$, we set the receiver-
side multiplexing gain of its equivalent multi-stream receiver to be $G_{k}$.
Such an extension paves the way for using the optimality results in [21, 22]
to MIMO coded caching. Specifically, in case all the users in a MIMO setup can
receive $G$ independent streams (which is the case, for example, when they
have $G$ adequately-separated antennas) and $\eta:=\frac{L}{G}$ is an integer,
we get the interesting result that the coded caching gain $t$ can be
multiplied by $G$, and a cumulative single-shot DoF of $Gt+L$ becomes
achievable. We also propose a new algorithm for creating MIMO coded caching
schemes, where we elevate baseline linear MISO schemes already available in
the literature (with the signal-level cache cancellation approach) to be
applicable in MIMO setups while achieving the increased DoF of $Gt+L$. This
enables designing low-complexity, low-subpacketization MIMO schemes with full
DoF using appropriate baseline MISO schemes such as the one in [15].

In this paper, we use the following notations. For any integer $J$, we use
$[J]$ to denote the set of numbers $\\{1,2,\cdot\cdot\cdot,J\\}$. Boldface
upper- and lower-case letters indicate matrices and vectors, respectively, and
calligraphic letters denote sets. Other notations are defined as they are used
throughout the text.

##  II System Model

We consider a MIMO communication setup with $K$ users and a single server,
where the server has ${\mathsf{L}}$ transmit antennas and every user has
${\mathsf{G}}$ receive antennas. These antenna arrays enable spatial
multiplexing gains of $L$ and $G$ to be achievable at the transmitter and
receiver side, respectively. In other words, if the
${\mathsf{G}}\times{\mathsf{L}}$ channel matrix from the transmitter to user
$k\in[K]$ is shown by ${\mathbf{H}}_{k}$, the rank of every ${\mathbf{H}}_{k}$
is at least $G$, and the rank of the cumulative channel matrix, defined by the
vertical concatenation of individual channel matrices as

${\mathbf{H}}=\begin{bmatrix}{\mathbf{H}}_{1}\\\ \cdot\cdot\cdot\\\
{\mathbf{H}}_{K}\end{bmatrix}\;,$ (1)

is at least $L$. As a result, the server can deliver at least $L$ independent
data streams to all the users, and each user can receive at least $G$
independent streams. Let us denote the data stream $g\in[G]$ at user $k\in[K]$
with ${\mathsf{s}}_{k}^{g}$. Then, transmit beamformers
${\mathbf{w}}_{{\mathcal{R}}}\in\mathbb{C}^{{\mathsf{L}}\times 1}$ and receive
beamformers ${\mathbf{u}}_{k,g}\in\mathbb{C}^{{\mathsf{G}}\times 1}$ can be
built such that the zero-forcing set ${\mathcal{R}}$ includes $L-1$ streams,
and for every ${\mathsf{s}}_{k}^{g}\in{\mathcal{R}}$ we have

${\mathbf{u}}_{k,g}^{H}{\mathbf{H}}_{k}{\mathbf{w}}_{{\mathcal{R}}}=0\;.$ (2)

As the size of ${\mathcal{R}}$ is $L-1$, each transmit beamformer removes the
interference on $L-1$ streams. For simplicity, we define

${\mathbf{h}}_{k,g}=({\mathbf{u}}_{k,g}^{H}{\mathbf{H}}_{k})^{H}$ (3)

as the equivalent channel vector for the stream ${\mathsf{s}}_{k}^{g}$. In
this paper, we assume that equivalent channel multipliers (i.e.,
${\mathbf{h}}_{k,g}^{H}{\mathbf{w}}_{{\mathcal{R}}}$) can be estimated at the
receivers.111This can be done, for example, using downlink precoded pilots.

The users request files from a library ${\mathcal{F}}$ of $N$ files, each with
size $F$ bits. Each user has a cache memory of size $MF$ bits. For notational
simplicity, we use a normalized data unit and ignore $F$ in subsequent
notations. The coded caching gain is defined as $t=\frac{KM}{N}$. The value of
$t$ also indicates how many copies of the file library can be stored in the
cache memories throughout the entire network.

The system operation consists of two phases, placement and delivery. During
the placement phase, which takes place at the network’s low-traffic time,
cache memories of the users are filled with data from the files in
${\mathcal{F}}$. The placement phase is done without any prior knowledge of
the file requests in the future, and hence, we assume equal-sized portions of
all files are stored in each cache memory. Then, during the delivery phase,
the users reveal their requested files and the server builds and transmits a
set of transmission vectors so that all the users can reconstruct their
requested files using the received data and their cached contents. Without
loss of generality, we assume the transmissions are done in a TDMA manner,
i.e., in consecutive time intervals.

In this paper, we focus on high-SNR communications and use DoF in terms of the
number of simultaneously delivered independent data streams as the performance
metric.222Note that the common practice in the literature for MISO setups is
to define DoF as the number of simultaneously served users instead of streams,
as in a MISO setup each user can receive only one stream at a time. We also
assume that $\eta=\frac{L}{G}$ is an integer. Let us denote the transmission
vector for time interval $i$ with ${\mathbf{x}}(i)$ and the set of transmitted
streams in this time interval as ${\mathcal{S}}(i)$. The vector
${\mathbf{x}}(i)$ is built as

${\mathbf{x}}(i)=\sum_{{\mathsf{s}}_{k}^{g}\in{\mathcal{S}}(i)}X_{k}^{g}(i){\mathbf{w}}_{{\mathcal{R}}_{k}^{g}(i)}\;,$
(4)

where $X_{k}^{g}(i)$ is the data content for the stream ${\mathsf{s}}_{k}^{g}$
at time interval $i$ and ${\mathcal{R}}_{k}^{g}(i)$ denotes its associated
zero-forcing set. After the transmission is concluded, the user $k$ receives

${\mathbf{y}}_{k}(i)=\sum_{{\mathsf{s}}_{k}^{g}\in{\mathcal{S}}(i)}X_{k}^{g}(i){\mathbf{H}}_{k}{\mathbf{w}}_{{\mathcal{R}}_{k}^{g}(i)}+{\mathbf{z}}_{k}(i)\;,$
(5)

where the vector ${\mathbf{z}}_{k}(i)\in\mathbb{C}^{{\mathsf{G}}\times 1}$
represents AWGN at user $k$ in time interval $i$. Then, after multiplying by
receive beamformer vectors ${\mathbf{u}}_{k,g}$, the data stream $g$ at user
$k$ in this time interval can be found by decoding the signal

$\displaystyle y_{k}^{g}(i)$
$\displaystyle=\sum_{{\mathsf{s}}_{k}^{g}\in{\mathcal{S}}(i)}X_{k}^{g}(i){\mathbf{u}}_{k,g}^{H}{\mathbf{H}}_{k}{\mathbf{w}}_{{\mathcal{R}}_{k}^{g}(i)}+z_{k,g}(i)$
(6)
$\displaystyle=\sum_{{\mathsf{s}}_{k}^{g}\in{\mathcal{S}}(i)}X_{k}^{g}(i){\mathbf{h}}_{k,g}^{H}{\mathbf{w}}_{{\mathcal{R}}_{k}^{g}(i)}+z_{k,g}(i)\;,$

where we have used
$z_{k,g}(i)\equiv{\mathbf{u}}_{k,g}^{H}{\mathbf{z}}_{k}(i)$. The goal is to
design cache placement and transmission vectors such that for every
${\mathsf{s}}_{k}^{g}\in{\mathcal{S}}(i)$, $X_{k}^{g}(i)$ can be decoded
interference-free from $y_{k}^{g}(i)$. As mentioned earlier, the performance
metric is the number of simultaneously delivered independent data streams
within each transmission, and hence, we want to maximize $|{\mathcal{S}}(i)|$
for every time interval. The maximum value of $|{\mathcal{S}}(i)|$ for a MISO
setup is shown to be $t+L$. In this paper, we show that an increased DoF value
of $Gt+L$ is achievable in a MIMO setup with a low subpacketization
complexity.

##  III Signal-level Interference Cancellation

The MISO coded caching scheme in [14] introduced a novel cache-aided
interference cancellation approach, different than [6], to reduce the
subpacketization without altering the maximum achievable DoF. This approach,
which we refer to as the signal-level approach, removes the interference using
the cache contents before the signal is decoded at the receiver. This is in
contrast with the classical bit-level approach, where the cache-aided
interference removal is done after decoding the received signal. Many other
papers in the literature, including the one in [15], have also used the
signal-level approach to reduce the required subpacketization. It is worth
mentioning that, although we consider only the subpacketization issue here,
the signal-level approach also has other benefits such as enabling much
simpler optimized beamformer designs, as demonstrated in [15].

The MIMO coded caching scheme proposed in this paper can be built using any
baseline MISO scheme with the signal-level interference cancellation approach.
Interestingly though, with minor modifications, any bit-level MISO coded
caching scheme can be transformed into an equivalent signal-level MISO scheme,
without any DoF loss. The key to this transformation is to decouple the
codewords and use a separate beamformer for every data element being sent. The
following example enlightens the difference between the signal- and bit-level
approaches, and shows how a bit-level scheme can be transformed to an
equivalent signal-level scheme.

######  Example 1.

Consider a small MISO setup with $K=3$ users where the coded caching gain is
$t=1$ and the spatial multiplexing gain of $L=2$ can be achieved at the
transmitter. Let us consider the bit-level coded caching scheme in [6] as the
baseline. This scheme requires each file $W\in{\mathcal{F}}$ to be split into
three subpackets $W_{p}$, $p\in[3]$. The user $k$, $k\in[3]$, stores
subpackets $W_{k}$ of every file $W$ in its cache memory; i.e., the cache
contents of user $k$ are $\\{W_{k};\;\forall W\in{\mathcal{F}}\\}$. Then,
during the delivery phase, if the files requested by users 1-3 are shown by
$A$, $B$, and $C$, respectively, we transmit

${\mathbf{x}}=(A_{2}\oplus B_{1}){\mathbf{w}}_{3}+(A_{3}\oplus
C_{1}){\mathbf{w}}_{2}+(B_{3}\oplus C_{2}){\mathbf{w}}_{1}\;,$ (7)

where $\oplus$ represents the bit-wise XOR operation, and ${\mathbf{w}}_{k}$
is the zero-forcing vector for user $k$ (i.e.,
${\mathbf{h}}_{k}^{H}{\mathbf{w}}_{k}=0$, where ${\mathbf{h}}_{k}$ is the
channel vector from the transmitter to user $k$). Without loss of generality,
let us consider the decoding process at user one. Following the zero-force
beamforming definition, this user receives

$y_{1}=(A_{2}\oplus B_{1}){\mathbf{h}}_{1}^{H}{\mathbf{w}}_{3}+(A_{3}\oplus
C_{1}){\mathbf{h}}_{1}^{H}{\mathbf{w}}_{2}+z_{1}\;,$ (8)

where $z_{1}$ represents the AWGN at user one. The next step is to decode both
$(A_{2}\oplus B_{1})$ and $(A_{3}\oplus C_{1})$ from $y_{1}$, using, for
example, a SIC receiver. Finally, _after_ decoding, user one has to use its
cache contents to remove $B_{1}$ and $C_{1}$ from the resulting terms, to get
$A_{2}$ and $A_{3}$ interference-free. As the cache-aided interference
cancellation is done after the received signal is decoded at the receiver, we
have a bit-level coded caching scheme here.

In order to transform this scheme into an equivalent signal-level scheme, we
need to simply decouple the codewords (i.e., the XOR terms) and use a separate
beamformer for every single data element. This means, instead of the
transmission vector ${\mathbf{x}}$, we transmit

$\bar{{\mathbf{x}}}=A_{2}{\mathbf{v}}_{3}^{1}+B_{1}{\mathbf{w}}_{3}^{2}+A_{3}{\mathbf{w}}_{2}^{1}+C_{1}{\mathbf{w}}_{2}^{2}+B_{3}{\mathbf{w}}_{1}^{1}+C_{2}{\mathbf{w}}_{1}^{2}\;,$
(9)

where the superscripts are used to distinguish two beamformers with the same
zero-forcing set (but different powers). After the transmission of
$\bar{{\mathbf{x}}}$, user one receives

$\bar{y}_{1}=A_{2}{\mathbf{h}}_{1}^{T}{\mathbf{w}}_{3}^{1}+B_{1}{\mathbf{h}}_{1}^{T}{\mathbf{w}}_{3}^{2}+A_{3}{\mathbf{h}}_{1}^{T}{\mathbf{w}}_{2}^{1}+C_{1}{\mathbf{h}}_{1}^{T}{\mathbf{w}}_{2}^{2}+z_{1}\;.$
(10)

Then, in order to get its required data elements, i.e., $A_{2}$ and $A_{3}$,
user one has to first build $B_{1}{\mathbf{h}}_{1}^{H}{\mathbf{w}}_{3}^{2}$
and $C_{1}{\mathbf{h}}_{1}^{H}{\mathbf{w}}_{2}^{2}$ using its cache contents
and the acquired channel multiplier information, and remove these interference
terms from the received signal _before_ decoding it (otherwise, these
interference terms will degrade the achievable rate severely). As the cache-
aided interference cancellation is now done before the decoding process, this
second scheme is using a signal-level approach.

(a) Bit-Level Interference Cancellation

(b) Signal-Level Interference Cancellation

Figure 1: Bit- and Signal-Level Schemes in Example 1

For better clarification, the encoding and decoding processes for the proposed
bit- and signal-level schemes in Example 1 are shown in Figure 1. Note that in
this figure, the decoding process for both schemes is shown only for user one.
With the same procedure outlined in Example 1, we can transform any MISO
scheme with the bit-level approach to another one with the signal-level
approach. Hence, although our MIMO coded caching scheme requires a baseline
signal-level MISO scheme, this condition does not in fact limit its
applicability. Nevertheless, throughout the rest of this paper, we use the
scheme in [15], due to its lower subpacketization, as our baseline scheme.

##  IV MIMO Coded Caching

###  IV-A The Elevation Procedure

As stated earlier, our new algorithm for MIMO coded caching works through
elevation of a baseline signal-level MISO scheme. In a nutshell, this
elevation procedure works as follows: for a given $K$-user MIMO network with
coded caching gain $t$ and spatial multiplexing gains of $L$ and $G$ at the
transmitter and receivers, we first consider a virtual MISO network with the
same number of $K$ users and caching gain $t$, but with the spatial
multiplexing gain of $\eta=\frac{L}{G}$ at the transmitter. Then, we design
cache placement and transmission vectors for the virtual network following one
of the available signal-level MISO schemes in the literature. Finally, cache
contents for users in the real network are set to be the same as the virtual
network, but transmission vectors of the virtual network are stretched to
support multi-stream receivers and the increased DoF.

The stretching process of the transmission vectors of the virtual network is
straightforward. Assume the zero-forcing beamformers for the virtual network
are shown with ${\mathbf{w}}_{{\mathcal{T}}}$, where ${\mathcal{T}}$ denotes
the set of users where the data is zero-forced.333Note that the virtual
network has a MISO setup, and hence, each user can receive only one data
stream at a time. Moreover, virtual beamformer vectors
${\mathbf{w}}_{{\mathcal{T}}}$ are defined only to clarify the transmission
(and decoding) process in the virtual network, and hence, it is not necessary
to calculate their exact values at any step. Then, a transmission vector
$\hat{{\mathbf{x}}}$ of the virtual network is a linear combination of
$t+\eta$ terms $W_{p}^{q}(k){\mathbf{w}}_{{\mathcal{T}}(k)}$, where
$W_{p}^{q}(k)$ denotes a subpacket of the file $W(k)$ requested by user $k$
(the subpacket index is clarified by $p$ and $q$), and
${\mathbf{w}}_{{\mathcal{T}}(k)}$ is the beamformer vector associated with
$W_{p}^{q}(k)$. Now, for stretching, for every term
$W_{p}^{q}(k){\mathbf{w}}_{{\mathcal{T}}(k)}$ in $\hat{{\mathbf{x}}}$, we
first split the subpacket $W_{p}^{q}(k)$ into $G$ smaller parts
$W_{p}^{q,g}(k)$, $g\in[G]$, and then replace the term with

$W_{p}^{q}(k){\mathbf{w}}_{{\mathcal{T}}(k)}\;\rightarrow\;W_{p}^{q,1}(k){\mathbf{w}}_{{\mathcal{R}}_{1}}+\cdot\cdot\cdot+W_{p}^{q,G}(k){\mathbf{w}}_{{\mathcal{R}}_{G}},$
(11)

where the zero-forcing sets ${\mathcal{R}}_{g}$ for the real MIMO network are
built as

${\mathcal{R}}_{g}=\bigcup_{\bar{k}\in{\mathcal{T}}(k)}\\{{\mathsf{s}}_{\bar{k}}^{1},\cdot\cdot\cdot,{\mathsf{s}}_{\bar{k}}^{G}\\}\;\cup\;\\{{\mathsf{s}}_{k}^{1},\cdot\cdot\cdot,{\mathsf{s}}_{k}^{G}\\}\backslash\\{{\mathsf{s}}_{k}^{g}\\}.$
(12)

In other words, instead of a single data stream $W_{p}^{q}(k)$ for user $k$ in
the virtual network, we consider $G$ parallel streams $W_{p}^{q,g}(k)$ for
user $k$ in the real network. Moreover, if the zero-forcing set for
$W_{p}^{q}(k)$ in the virtual network is ${\mathcal{T}}(k)$, the interference
from $W_{p}^{q,g}(k)$ in the real network should be zero-forced at:

  1. 1.

Every stream sent to every user $\bar{k}\in{\mathcal{T}}(k)$. As
$|{\mathcal{T}}(k)|=\eta-1$ and each stream in the virtual network is
transformed into $G$ streams in the real network, this includes
$G\times(\eta-1)$ streams in total;

  2. 2.

Every other stream sent to user $k$. This includes $G-1$ streams in total.

As a result, the interference from $W_{p}^{q,g}(k)$ must be zero-forced on a
total number of

$G(\eta-1)+G-1=\eta G-1=L-1$ (13)

streams in the real network, which is indeed possible as the spatial
multiplexing gain of $L$ is achievable at the transmitter. In the following
subsection, we review the elevation procedure using a simple example network.
We also discuss how the received signal is decoded by the users.

###  IV-B A Clarifying Example

Let us consider a small network with $K=6$ users and caching gain $t=1$, where
the spatial multiplexing gains of $L=4$ and $G=2$ are achievable at the
transmitter and receivers, respectively. Using MISO schemes, the maximum
achievable DoF for this network is $L+t=5$.444Note that in this case, multiple
receive antennas can be used for achieving an additional beamforming gain (cf.
[10]). However, they do not result in any increase in the DoF value. However,
with the proposed elevation algorithm, the achievable DoF can be increased to
$Gt+L=6$. As mentioned earlier, without any loss of generality, we assume the
reduced-subpacketization scheme in [15] is chosen as the baseline MISO scheme.

The first step is to find proper parameters for the virtual MISO network.
Clearly, the virtual network has the same number of $K=6$ users and caching
gain $t=1$, but the spatial multiplexing gain of $\eta=\frac{L}{G}=2$ at the
transmitter. Cache placement in the virtual network directly follows that of
[15], i.e., every file $W\in{\mathcal{F}}$ is first split into $K=6$ equal-
sized packets denoted by $W_{p}$, $p\in[6]$, and then, each packet is split
into $t+\eta=3$ smaller subpackets denoted by $W_{p}^{q}$, $q\in[3]$. Finally,
every user $k$ caches $W_{k}^{q}$, for every $W\in{\mathcal{F}}$ and
$q\in[3]$. For example, user one caches $\\{W_{1}^{1},W_{1}^{2},W_{1}^{3}\\}$,
for every file $W$ in the library.

$W_{1}^{q}$$W_{2}^{q}$$W_{3}^{q}$$W_{4}^{q}$$W_{5}^{q}$$W_{6}^{q}$$\underset{\rightarrow}{\textrm{{user}}}$123456
(a) Transmission vector $\hat{{\mathbf{x}}}(1)$

$W_{1}^{q}$$W_{2}^{q}$$W_{3}^{q}$$W_{4}^{q}$$W_{5}^{q}$$W_{6}^{q}$$\underset{\rightarrow}{\textrm{{user}}}$123456
(b) Transmission vector $\hat{{\mathbf{x}}}(2)$

Figure 2: Graphical representation of transmission vectors for the virtual
network

For simplicity, let us use $W(1)\equiv A$, $W(2)\equiv B$, …, and $W(6)\equiv
F$ (note that it is still possible for some users to request the same file).
Using the coded caching scheme in [15] for the virtual network, the first and
second transmission vectors (corresponding to the transmissions in the first
and second time intervals) are built as

$\displaystyle\hat{{\mathbf{x}}}(1)$
$\displaystyle=A_{2}^{1}{\mathbf{w}}_{3}+B_{1}^{1}{\mathbf{w}}_{3}+C_{1}^{1}{\mathbf{w}}_{2},$
(14) $\displaystyle\hat{{\mathbf{x}}}(2)$
$\displaystyle=A_{3}^{1}{\mathbf{w}}_{4}+C_{1}^{2}{\mathbf{w}}_{4}+D_{1}^{1}{\mathbf{w}}_{3},$

where the brackets for the zero-forcing sets are ignored for notational
simplicity. For better clarification, graphical representations for
$\hat{{\mathbf{x}}}(1)$ and $\hat{{\mathbf{x}}}(2)$ are provided in Figure 2.
These representations follow the same principles as in [15], i.e., a black
cell means (every subpacket of) the respective data part is available in the
cache memory, and a gray cell indicates that (a subpacket of) the respective
part is sent during the transmission.

Now, using the stretching mechanism in (11), the stretched version of
$\hat{{\mathbf{x}}}(1)$ can be written as

$\displaystyle{{\mathbf{x}}}(1)=$ $\displaystyle
A_{2}^{1,1}{\mathbf{w}}_{{\mathsf{s}}_{3}^{1},{\mathsf{s}}_{3}^{2},{\mathsf{s}}_{1}^{2}}+A_{2}^{1,2}{\mathbf{w}}_{{\mathsf{s}}_{3}^{1},{\mathsf{s}}_{3}^{2},{\mathsf{s}}_{1}^{1}}$
(15)
$\displaystyle+B_{1}^{1,1}{\mathbf{w}}_{{\mathsf{s}}_{3}^{1},{\mathsf{s}}_{3}^{2},{\mathsf{s}}_{2}^{2}}+B_{1}^{1,2}{\mathbf{w}}_{{\mathsf{s}}_{3}^{1},{\mathsf{s}}_{3}^{2},{\mathsf{s}}_{2}^{1}}$
$\displaystyle+C_{1}^{1,1}{\mathbf{w}}_{{\mathsf{s}}_{2}^{1},{\mathsf{s}}_{2}^{2},{\mathsf{s}}_{3}^{2}}+C_{1}^{1,2}{\mathbf{w}}_{{\mathsf{s}}_{2}^{1},{\mathsf{s}}_{2}^{2},{\mathsf{s}}_{3}^{1}},$

where the brackets for the zero-forcing sets are ignored for notational
simplicity. Similarly, for $\hat{{\mathbf{x}}}(2)$ we can write

$\displaystyle{{\mathbf{x}}}(2)=$ $\displaystyle
A_{3}^{1,1}{\mathbf{w}}_{{\mathsf{s}}_{4}^{1},{\mathsf{s}}_{4}^{2},{\mathsf{s}}_{1}^{2}}+A_{3}^{1,2}{\mathbf{w}}_{{\mathsf{s}}_{4}^{1},{\mathsf{s}}_{4}^{2},{\mathsf{s}}_{1}^{1}}$
(16)
$\displaystyle+C_{1}^{2,1}{\mathbf{w}}_{{\mathsf{s}}_{4}^{1},{\mathsf{s}}_{4}^{2},{\mathsf{s}}_{3}^{2}}+C_{1}^{2,2}{\mathbf{w}}_{{\mathsf{s}}_{4}^{1},{\mathsf{s}}_{4}^{2},{\mathsf{s}}_{3}^{1}}$
$\displaystyle+D_{1}^{1,1}{\mathbf{w}}_{{\mathsf{s}}_{3}^{1},{\mathsf{s}}_{3}^{2},{\mathsf{s}}_{4}^{2}}+D_{1}^{1,2}{\mathbf{w}}_{{\mathsf{s}}_{3}^{1},{\mathsf{s}}_{3}^{2},{\mathsf{s}}_{4}^{1}}.$

Note that in this example, zero-forcing the interference of one data stream on
three other streams is possible as the spatial multiplexing gain of $L=4$ is
achievable at the transmitter. The graphical representations for these
transmissions are provided in Figures 3 and 4. As can be seen, they seem like
the stretched versions of the base representations provided in Figure 2, and
hence, we use the term stretching to denote the proposed set of operations.

$W_{1}^{q}$$W_{2}^{q}$$W_{3}^{q}$$W_{4}^{q}$$W_{5}^{q}$$W_{6}^{q}$User 1User
2User 3User 4User 5User
6${\mathsf{s}}_{1}^{1}$${\mathsf{s}}_{1}^{2}$${\mathsf{s}}_{2}^{1}$${\mathsf{s}}_{2}^{2}$${\mathsf{s}}_{3}^{1}$${\mathsf{s}}_{3}^{2}$${\mathsf{s}}_{4}^{1}$${\mathsf{s}}_{4}^{2}$${\mathsf{s}}_{5}^{1}$${\mathsf{s}}_{5}^{2}$${\mathsf{s}}_{6}^{1}$${\mathsf{s}}_{6}^{2}$
Figure 3: Graphical illustration of ${{\mathbf{x}}}(1)$
$W_{1}^{q}$$W_{2}^{q}$$W_{3}^{q}$$W_{4}^{q}$$W_{5}^{q}$$W_{6}^{q}$User 1User
2User 3User 4User 5User
6${\mathsf{s}}_{1}^{1}$${\mathsf{s}}_{1}^{2}$${\mathsf{s}}_{2}^{1}$${\mathsf{s}}_{2}^{2}$${\mathsf{s}}_{3}^{1}$${\mathsf{s}}_{3}^{2}$${\mathsf{s}}_{4}^{1}$${\mathsf{s}}_{4}^{2}$${\mathsf{s}}_{5}^{1}$${\mathsf{s}}_{5}^{2}$${\mathsf{s}}_{6}^{1}$${\mathsf{s}}_{6}^{2}$
Figure 4: Graphical illustration of ${{\mathbf{x}}}(2)$

Now, let us review the decoding process for each stream of user one as
${{\mathbf{x}}}(1)$ is transmitted. The received signal at this user can be
written in the vector form as

$\displaystyle{\mathbf{y}}_{1}(1)$
$\displaystyle={\mathbf{H}}_{1}{{\mathbf{x}}}(1)+{\mathbf{z}}_{1}(1)$ (17)
$\displaystyle=A_{2}^{1,1}{\mathbf{H}}_{1}{\mathbf{w}}_{{\mathsf{s}}_{3}^{1},{\mathsf{s}}_{3}^{2},{\mathsf{s}}_{1}^{2}}+A_{2}^{1,2}{\mathbf{H}}_{1}{\mathbf{w}}_{{\mathsf{s}}_{3}^{1},{\mathsf{s}}_{3}^{2},{\mathsf{s}}_{1}^{1}}$
$\displaystyle\qquad+{\mathbf{H}}_{1}{\mathbf{I}}_{1}(1)+{\mathbf{z}}_{1}(1),$

where ${\mathbf{I}}_{1}(i)$ is the interference term at user one at the first
time interval, defined as

$\displaystyle{\mathbf{I}}_{1}(1)$
$\displaystyle=B_{1}^{1,1}{\mathbf{w}}_{{\mathsf{s}}_{3}^{1},{\mathsf{s}}_{3}^{2},{\mathsf{s}}_{2}^{2}}+B_{1}^{1,2}{\mathbf{w}}_{{\mathsf{s}}_{3}^{1},{\mathsf{s}}_{3}^{2},{\mathsf{s}}_{2}^{1}}$
(18)
$\displaystyle+C_{1}^{1,1}{\mathbf{w}}_{{\mathsf{s}}_{2}^{1},{\mathsf{s}}_{2}^{2},{\mathsf{s}}_{3}^{2}}+C_{1}^{1,2}{\mathbf{w}}_{{\mathsf{s}}_{2}^{1},{\mathsf{s}}_{2}^{2},{\mathsf{s}}_{3}^{1}}.$

The next step is to multiply the received signal ${\mathbf{y}}_{1}(1)$ by
receive beamformers ${\mathbf{u}}_{1,1}$ and ${\mathbf{u}}_{1,2}$, in order to
extract ${\mathsf{s}}_{1}^{1}$ and ${\mathsf{s}}_{1}^{2}$, respectively. After
multiplication by ${\mathbf{u}}_{1,1}$ we get

$\displaystyle y_{1}^{1}(1)$
$\displaystyle={\mathbf{u}}_{1,1}^{H}{\mathbf{y}}_{1}(1)={\mathbf{h}}_{1,1}^{H}{\mathbf{x}}(1)+z_{1,1}(1)$
(19)
$\displaystyle=A_{2}^{1,1}{\mathbf{h}}_{1,1}^{H}{\mathbf{w}}_{{\mathsf{s}}_{3}^{1},{\mathsf{s}}_{3}^{2},{\mathsf{s}}_{1}^{2}}+{\mathbf{h}}_{1,1}^{H}{\mathbf{I}}_{1}(1)+z_{1,1}(1)\;,$

where ${\mathbf{h}}_{1,1}$ and $z_{1,1}(1)$ are the equivalent channel vector
and AWGN for the first stream of user one during this transmission as defined
in Section II, and we have used the zero-force beamforming property

${\mathbf{h}}_{1,1}^{H}{\mathbf{w}}_{{\mathsf{s}}_{3}^{1},{\mathsf{s}}_{3}^{2},{\mathsf{s}}_{1}^{1}}=0\;.$
(20)

However, user one has all the terms $B_{1}^{1,1}$, $B_{1}^{1,2}$,
$C_{1}^{1,1}$, and $C_{1}^{1,2}$ in its cache memory. Hence, with the
equivalent channel multiplier knowledge, it can build and remove the
interference term ${\mathbf{h}}_{1,1}^{H}{\mathbf{I}}_{1}(1)$ from
$y_{1}^{1}(1)$, to decode the requested term $A_{1}^{1,1}$ interference-free.
Similarly, multiplying by ${\mathbf{u}}_{1,2}$ results in

$\displaystyle y_{1}^{2}(1)$
$\displaystyle={\mathbf{u}}_{1,2}^{H}{\mathbf{y}}_{1}(1)={\mathbf{h}}_{1,2}^{H}{\mathbf{x}}(1)+z_{1,2}(1)$
(21)
$\displaystyle=A_{2}^{1,2}{\mathbf{h}}_{1,2}^{H}{\mathbf{w}}_{{\mathsf{s}}_{3}^{1},{\mathsf{s}}_{3}^{2},{\mathsf{s}}_{1}^{1}}+{\mathbf{h}}_{1,2}^{H}{\mathbf{I}}_{1}(1)+z_{1,2}(1)\;.$

Again, user one can use its cache contents and the acquired equivalent channel
multipliers to build and remove ${\mathbf{h}}_{1,2}^{H}{\mathbf{I}}_{1}(1)$
from $y_{1}^{2}(1)$, and decode $A_{1}^{1,2}$ interference-free. As a result,
user one receives two parallel data streams from the transmission of
${\mathbf{x}}(1)$. Similarly, users two and three each receive two parallel
data streams, and hence, a total number of six data streams are delivered to
the users during the first time interval. The same procedure is repeated
during every transmission, and the increased DoF of $Gt+L=6$ becomes possible.
Note that here, the cache-aided interference cancellation (i.e., removing
${\mathbf{h}}_{1,1}^{H}{\mathbf{I}}_{1}(1)$ and
${\mathbf{h}}_{1,2}^{H}{\mathbf{I}}_{1}(1)$) occurs before decoding
$y_{1}^{1}(1)$ and $y_{1}^{2}(1)$, and hence, we have a signal-level coded
caching scheme. Moreover, as $p\in[6]$, $q\in[3]$, and $g\in[2]$, the total
subpacketization of the caching scheme in this example network is $6\times
3\times 2=36$.

###  IV-C Performance and Complexity Analysis

It can be easily verified that using the proposed elevation mechanism, if the
baseline MISO scheme achieves DoF of $t+L$, the resulting MIMO scheme can
deliver $Gt+L$ parallel streams to the users during each transmission. This is
because for the original network with parameters $K$, $t$, $L$, and $G$, the
virtual MISO network has the same number of $K$ users and coded caching gain
$t$, but the transmitter-side multiplexing gain is reduced to
$\eta=\frac{L}{G}$. So, each transmission vector in the virtual network
delivers data to $t+\eta$ users simultaneously. However, according to (11),
during the stretching process every data stream in a transmission vector of
the virtual network is replaced by $G$ data stream for the real network. So,
in every transmission vector for the original MIMO network we deliver

$G(t+\eta)=Gt+L$ (22)

parallel streams, and hence, the DoF is increased to $Gt+L$. As discussed in
[21], this DoF value is also optimal among any linear coded caching scheme
with uncoded cache placement and single-shot data delivery.

The subpacketization value of the resulting MIMO scheme depends on the
subpacketization requirement of the baseline MISO scheme. If the
subpacketization of the baseline scheme is $f(K,t,L)$, where $K$, $t$, and $L$
represent the user count, the coded caching gain, and the transmitter-side
multiplexing gain, respectively, the resulting MIMO scheme from the proposed
elevation mechanism will have the subpacketization of

$G\times f(K,t,\eta)\;.$ (23)

This is because the subpacketization requirement for the virtual network is
$f(K,t,\eta)$, and during the elevation process, each subpacket is further
split into $G$ smaller parts. So, for example, if the low-subpacketization
scheme in [15] is selected as the baseline MISO scheme, the subpacketization
requirement would be

$G\times K(t+\eta)=K(Gt+L)\;.$ (24)

However, the scheme in [15] is applicable to the virtual network only if
$\eta\geq t$, or $L\geq Gt$. On the other hand, if we select the original MISO
scheme in [9] as the baseline, the resulting MIMO scheme would have the
subpacketization requirement of

$G\times\binom{K}{t}\binom{K-t-1}{\eta-1}\;,$ (25)

and the scheme would be applicable regardless of $t$, $L$, and $G$ values as
long as $\eta$ is an integer. In summary, depending on the selection of the
baseline scheme, the resulting MIMO scheme can benefit from a very low
subpacketization complexity. The subpacketization growth with the user count
can even be linear, if the baseline scheme is chosen as the one in [15].

##  V Conclusion and Future Work

In this paper, we investigated how coded caching schemes can be applied to
multi-input multi-output (MIMO) communication setups. We introduced a novel
mechanism to elevate any multi-input single-output (MISO) scheme in the
literature to be applicable to MIMO settings. The elevation mechanism keeps
the properties of the baseline scheme (e.g., the low subpacketization
requirement) while achieving an increased coded caching gain. We also used
results from the shared-cache model to claim the optimality of the achievable
degrees of freedom (DoF) of the resulting scheme among the class of linear,
single-shot caching schemes with uncoded data placement. Overall, the proposed
elevation mechanism allows designing efficient, low-complexity coded caching
schemes for any MIMO network.

The discussions in this paper were focused on communications in the high-SNR
regime where the DoF metric is an appropriate performance indicator. However,
a thorough analysis of the performance at the finite-SNR regime is due for
later work. Also, investigating the applicability of the proposed scheme under
dynamic network conditions where users can freely join/leave the network is
part of the ongoing research.

## References

  * [1] V. N. I. Cisco, “Cisco visual networking index: Forecast and trends, 2017–2022,” _White Paper_ , vol. 1, 2018.
  * [2] H. B. Mahmoodi, M. Salehi, and A. Tölli, “Non-Symmetric Coded Caching for Location-Dependent Content Delivery,” _arXiv preprint arXiv:2102.02518_ , 2021.
  * [3] M. A. Maddah-Ali and U. Niesen, “Fundamental limits of caching,” _IEEE Transactions on Information Theory_ , vol. 60, no. 5, pp. 2856–2867, 2014.
  * [4] N. Rajatheva, I. Atzeni, E. Bjornson, A. Bourdoux, S. Buzzi, J.-B. Dore, S. Erkucuk, M. Fuentes, K. Guan, Y. Hu, and others, “White Paper on Broadband Connectivity in 6G,” _arXiv preprint arXiv:2004.14247_ , 2020\.
  * [5] S. P. Shariatpanahi, S. A. Motahari, and B. H. Khalaj, “Multi-server coded caching,” _IEEE Transactions on Information Theory_ , vol. 62, no. 12, pp. 7253–7271, 2016.
  * [6] S. P. Shariatpanahi, G. Caire, and B. Hossein Khalaj, “Physical-Layer Schemes for Wireless Coded Caching,” _IEEE Transactions on Information Theory_ , vol. 65, no. 5, pp. 2792–2807, 2019.
  * [7] E. Lampiris and P. Elia, “Resolving a feedback bottleneck of multi-antenna coded caching,” _arXiv_ , 2018. [Online]. Available: http://arxiv.org/abs/1811.03935
  * [8] N. Naderializadeh, M. A. Maddah-Ali, and A. S. Avestimehr, “Fundamental Limits of Cache-Aided Interference Management,” _IEEE Transactions on Information Theory_ , vol. 63, no. 5, pp. 3092–3107, 2017.
  * [9] S. P. Shariatpanahi and B. H. Khalaj, “On Multi-Server Coded Caching in the Low Memory Regime,” _arXiv preprint arXiv:1803.07655_ , pp. 1–12, 2018\. [Online]. Available: https://arxiv.org/pdf/1803.07655.pdf
  * [10] A. Tölli, S. P. Shariatpanahi, J. Kaleva, and B. H. Khalaj, “Multi-antenna interference management for coded caching,” _IEEE Transactions on Wireless Communications_ , vol. 19, no. 3, pp. 2091–2106, 2020\.
  * [11] Q. Yan, X. Tang, Q. Chen, and M. Cheng, “Placement Delivery Array Design Through Strong Edge Coloring of Bipartite Graphs,” _IEEE Communications Letters_ , vol. 22, no. 2, pp. 236–239, 2018.
  * [12] Q. Yan, M. Cheng, X. Tang, and Q. Chen, “On the placement delivery array design for centralized coded caching scheme,” _IEEE Transactions on Information Theory_ , vol. 63, no. 9, pp. 5821–5833, 2017.
  * [13] C. Shangguan, Y. Zhang, and G. Ge, “Centralized coded caching schemes: A hypergraph theoretical approach,” _IEEE Transactions on Information Theory_ , vol. 64, no. 8, pp. 5755–5766, 2018.
  * [14] E. Lampiris and P. Elia, “Adding transmitters dramatically boosts coded-caching gains for finite file sizes,” _IEEE Journal on Selected Areas in Communications_ , vol. 36, no. 6, pp. 1176–1188, 2018.
  * [15] M. Salehi, E. Parrinello, S. P. Shariatpanahi, P. Elia, and A. Tölli, “Low-Complexity High-Performance Cyclic Caching for Large MISO Systems,” _arXiv preprint arXiv:2009.12231_ , 2020.
  * [16] M. Salehi, A. Tölli, and S. P. Shariatpanahi, “A Multi-Antenna Coded Caching Scheme with Linear Subpacketization,” in _2020 IEEE International Conference on Communications (ICC)_ , 2019, pp. 1–6.
  * [17] M. Salehi and A. Tolli, “Diagonal Multi-Antenna Coded Caching for Reduced Subpacketization,” in _2020 IEEE Global Communications Conference (GLOBECOM)_. IEEE, 2020, pp. 1–6.
  * [18] S. Mohajer and I. Bergel, “MISO Cache-Aided Communication with Reduced Subpacketization,” in _ICC 2020-2020 IEEE International Conference on Communications (ICC)_. IEEE, 2020, pp. 1–6.
  * [19] M. Salehi, A. Tolli, S. P. Shariatpanahi, and J. Kaleva, “Subpacketization-rate trade-off in multi-antenna coded caching,” in _2019 IEEE Global Communications Conference, GLOBECOM 2019 - Proceedings_. IEEE, 2019, pp. 1–6.
  * [20] M. Salehi, A. Tolli, and S. P. Shariatpanahi, “Coded Caching with Uneven Channels: A Quality of Experience Approach,” in _2020 IEEE International Workshop on Signal Processing Advances in Wireless Communications (SPAWC)_ , 2020, pp. 1–5.
  * [21] E. Parrinello, A. Ünsal, and P. Elia, “Fundamental Limits of Coded Caching with Multiple Antennas, Shared Caches and Uncoded Prefetching,” _IEEE Transactions on Information Theory_ , 2019.
  * [22] E. Parrinello, P. Elia, and E. Lampiris, “Extending the Optimality Range of Multi-Antenna Coded Caching with Shared Caches,” in _2020 IEEE International Symposium on Information Theory (ISIT)_. IEEE, 2020, pp. 1675–1680.