IEEE Solid-State Circuits Magazine - Spring 2016 - 64
parameters to the system, memory
devices may choose to perform lowlevel timing management on their
own [23]. The processor issues read
or write commands to the memory
device, and the device figures out the
fastest sequence of commands that
can service that data. If the manufacturing process is highly problematic,
it leads to more complex management
circuits and higher performance than a
competitor that chooses to not provide
smart timing management.
Reliability
In many domains, error-correction
support within memory is a strong
requirement. Modern error-correction
solutions, especially those for chipkill
[8], incur significant overheads for
storage, energy, and in some cases
performance. As DRAM technologies
scale, errors may become more common. Instead of relying on the processor socket to implement a reliable
solution over an unreliable DRAM
platform, there is value in implementing a reliable DRAM platform in
the first place so that the processor
doesn't have to worry about error correction. The advantage in implementing an error correction solution in
DRAM (either in a 3D-stacked package
or on a logic chip on a DIMM or on the
DRAM die itself) is as follows: 1) the
processor need not be exposed to the
bandwidth overhead of fetching ECC
bits, 2) there is reduced data movement energy, and 3) error correction
solutions can be designed that are tailored to the specific vulnerabilities of
the vendor's manufacturing process.
Reliability will be an even bigger
concern in NVMs because of wearout,
drift, the iterative nature of writes,
and other interference effects [5].
With internal mechanisms to handle
these problems, memory vendors can
make trade-off choices that would
not otherwise have been palatable.
For example, one would not design a
weaker write process if it resulted in a
high raw bit-error rate being exposed
to the outside world. But with an inbuilt error correction process, a notso-perfect write mechanism may
64
S P R I N G 2 0 16
yield an overall lower power consumption, while also yielding a low
bit-error rate. Note that codes can
also be constructed to reduce data
transmission energy or reduce write
energy/wearout in NVMs, as is done
with data bus inversion in DDR4 or by
a few other recent papers [39], [19].
Security
It is clear that security is a metric that
will grow in prominence. A first step
in protecting sensitive information is
to encrypt data. There are good arguments for performing this encryption
(and corresponding decryption) on the
processor or on the memory. If one is
paranoid about an attacker having
physical access to the hardware and,
in particular, the memory bus, then
plain text information should never
emerge out of the processor socket,
and the encryption is best performed
on the processor. By giving the processor control over encryption, the
application can also lower overheads
by only encrypting the most sensitive
information. On the other hand, data
encryption on the memory device
makes sense if the threat model is that
someone may steal a DIMM. In such
cases, a more lazy encryption policy
can be implemented. One can also
implement an aggressive prefetchand-decrypt policy on the memory
device to reduce read latency; doing
this on the processor would incur a
heavy bandwidth penalty.
There exist other threat models that require more drastic security measures. If an attacker has
physical access to hardware (e.g., a
malicious cloud operator), we have
already seen that data encryption
is an important first step. Even with
data encryption, the attacker can
still engage in replay attacks [29]
(returning the old encrypted value
of data to disrupt the application)
or gather sensitive information [13],
[17] by snooping on the address trace
(note that addresses are still sent out
in plain text). To address these vulnerabilities, researchers have constructed solutions, Merkle trees [12]
and oblivious RAM [40], respectively,
IEEE SOLID-STATE CIRCUITS MAGAZINE
that organize memory blocks into
a logical tree structure and require
fetching all the blocks in a given
subtree. Both solutions incur a very
high penalty in terms of bandwidth.
Moving some of these solutions to
the memory device, as was done by
Gundu et al. [14], can lower the overheads by leveraging the high intrapackage or intra-DIMM bandwidth.
Closing Thoughts
In summary, this article has made
the argument that memory devices
can be much more than "dumb" units
that store rows of bits. They can be
augmented to perform parts of the
application or other auxiliary system-level features. This can directly
impact overall system performance
and energy. While this approach
will no doubt increase the cost per
bit for memory devices, it offers an
opportunity for value addition in an
era where customers will likely pay
more for specialized systems.
Acknowledgments
This work was supported in part by IBM
Research, Hewlett Packard Labs, and
by National Science Foundation grants
1302663 and 1423583. This article
draws heavily on the work of students
in the Utah Arch lab (Seth Pugsley, Ali
Shafiee, Akhila Gundu, Manjunath
Shevgoor, Anirban Nag, Niladrish Chatterjee, Meysam Taassori, and Arjun
Deb) and collaborators (Alper Buyuktosunoglu, Al Davis, Feifei Li, Naveen
Muralimanohar, Vivek Srikumar, and
Viji Srinivasan).
References
[1] J. Ahn, S. Hong, S. Yoo, O. Mutlu, and K.
Choi, "A scalable processing-in-memory
accelerator for parallel graph processing,"
in Proc. ACM/IEEE 42nd Annual Int. Symp.
ISCA, Portland, OR, 2015, pp. 105-117.
[2] J. Ahn, S. Yoo, O. Mutlu, and K. Choi, "PIMenabled instructions: A low-overhead,
locality-aware
processing-in-memory
architecture," in Proc. ACM/IEEE 42nd Annual Int. Symp. ISCA, Portland, OR, 2015,
pp. 336-348.
[3] B. Akin, F. Franchetti, and J. Hoe, "Data reorganization in memory using 3D-stacked
DRAM," in Proc. ACM/IEEE 42nd Annual
Int. Symp. ISCA, Portland, OR, 2015, pp.
131-143.
[4] R. Balasubramonian, J. Chang, T. Manning, J. Moreno, R. Murphy, R. Nair, and S.
Swanson, "Near-data processing: Insight
Table of Contents for the Digital Edition of IEEE Solid-State Circuits Magazine - Spring 2016
IEEE Solid-State Circuits Magazine - Spring 2016 - Cover1
IEEE Solid-State Circuits Magazine - Spring 2016 - Cover2
IEEE Solid-State Circuits Magazine - Spring 2016 - 1
IEEE Solid-State Circuits Magazine - Spring 2016 - 2
IEEE Solid-State Circuits Magazine - Spring 2016 - 3
IEEE Solid-State Circuits Magazine - Spring 2016 - 4
IEEE Solid-State Circuits Magazine - Spring 2016 - 5
IEEE Solid-State Circuits Magazine - Spring 2016 - 6
IEEE Solid-State Circuits Magazine - Spring 2016 - 7
IEEE Solid-State Circuits Magazine - Spring 2016 - 8
IEEE Solid-State Circuits Magazine - Spring 2016 - 9
IEEE Solid-State Circuits Magazine - Spring 2016 - 10
IEEE Solid-State Circuits Magazine - Spring 2016 - 11
IEEE Solid-State Circuits Magazine - Spring 2016 - 12
IEEE Solid-State Circuits Magazine - Spring 2016 - 13
IEEE Solid-State Circuits Magazine - Spring 2016 - 14
IEEE Solid-State Circuits Magazine - Spring 2016 - 15
IEEE Solid-State Circuits Magazine - Spring 2016 - 16
IEEE Solid-State Circuits Magazine - Spring 2016 - 17
IEEE Solid-State Circuits Magazine - Spring 2016 - 18
IEEE Solid-State Circuits Magazine - Spring 2016 - 19
IEEE Solid-State Circuits Magazine - Spring 2016 - 20
IEEE Solid-State Circuits Magazine - Spring 2016 - 21
IEEE Solid-State Circuits Magazine - Spring 2016 - 22
IEEE Solid-State Circuits Magazine - Spring 2016 - 23
IEEE Solid-State Circuits Magazine - Spring 2016 - 24
IEEE Solid-State Circuits Magazine - Spring 2016 - 25
IEEE Solid-State Circuits Magazine - Spring 2016 - 26
IEEE Solid-State Circuits Magazine - Spring 2016 - 27
IEEE Solid-State Circuits Magazine - Spring 2016 - 28
IEEE Solid-State Circuits Magazine - Spring 2016 - 29
IEEE Solid-State Circuits Magazine - Spring 2016 - 30
IEEE Solid-State Circuits Magazine - Spring 2016 - 31
IEEE Solid-State Circuits Magazine - Spring 2016 - 32
IEEE Solid-State Circuits Magazine - Spring 2016 - 33
IEEE Solid-State Circuits Magazine - Spring 2016 - 34
IEEE Solid-State Circuits Magazine - Spring 2016 - 35
IEEE Solid-State Circuits Magazine - Spring 2016 - 36
IEEE Solid-State Circuits Magazine - Spring 2016 - 37
IEEE Solid-State Circuits Magazine - Spring 2016 - 38
IEEE Solid-State Circuits Magazine - Spring 2016 - 39
IEEE Solid-State Circuits Magazine - Spring 2016 - 40
IEEE Solid-State Circuits Magazine - Spring 2016 - 41
IEEE Solid-State Circuits Magazine - Spring 2016 - 42
IEEE Solid-State Circuits Magazine - Spring 2016 - 43
IEEE Solid-State Circuits Magazine - Spring 2016 - 44
IEEE Solid-State Circuits Magazine - Spring 2016 - 45
IEEE Solid-State Circuits Magazine - Spring 2016 - 46
IEEE Solid-State Circuits Magazine - Spring 2016 - 47
IEEE Solid-State Circuits Magazine - Spring 2016 - 48
IEEE Solid-State Circuits Magazine - Spring 2016 - 49
IEEE Solid-State Circuits Magazine - Spring 2016 - 50
IEEE Solid-State Circuits Magazine - Spring 2016 - 51
IEEE Solid-State Circuits Magazine - Spring 2016 - 52
IEEE Solid-State Circuits Magazine - Spring 2016 - 53
IEEE Solid-State Circuits Magazine - Spring 2016 - 54
IEEE Solid-State Circuits Magazine - Spring 2016 - 55
IEEE Solid-State Circuits Magazine - Spring 2016 - 56
IEEE Solid-State Circuits Magazine - Spring 2016 - 57
IEEE Solid-State Circuits Magazine - Spring 2016 - 58
IEEE Solid-State Circuits Magazine - Spring 2016 - 59
IEEE Solid-State Circuits Magazine - Spring 2016 - 60
IEEE Solid-State Circuits Magazine - Spring 2016 - 61
IEEE Solid-State Circuits Magazine - Spring 2016 - 62
IEEE Solid-State Circuits Magazine - Spring 2016 - 63
IEEE Solid-State Circuits Magazine - Spring 2016 - 64
IEEE Solid-State Circuits Magazine - Spring 2016 - 65
IEEE Solid-State Circuits Magazine - Spring 2016 - 66
IEEE Solid-State Circuits Magazine - Spring 2016 - 67
IEEE Solid-State Circuits Magazine - Spring 2016 - 68
IEEE Solid-State Circuits Magazine - Spring 2016 - 69
IEEE Solid-State Circuits Magazine - Spring 2016 - 70
IEEE Solid-State Circuits Magazine - Spring 2016 - 71
IEEE Solid-State Circuits Magazine - Spring 2016 - 72
IEEE Solid-State Circuits Magazine - Spring 2016 - 73
IEEE Solid-State Circuits Magazine - Spring 2016 - 74
IEEE Solid-State Circuits Magazine - Spring 2016 - 75
IEEE Solid-State Circuits Magazine - Spring 2016 - 76
IEEE Solid-State Circuits Magazine - Spring 2016 - 77
IEEE Solid-State Circuits Magazine - Spring 2016 - 78
IEEE Solid-State Circuits Magazine - Spring 2016 - 79
IEEE Solid-State Circuits Magazine - Spring 2016 - 80
IEEE Solid-State Circuits Magazine - Spring 2016 - 81
IEEE Solid-State Circuits Magazine - Spring 2016 - 82
IEEE Solid-State Circuits Magazine - Spring 2016 - 83
IEEE Solid-State Circuits Magazine - Spring 2016 - 84
IEEE Solid-State Circuits Magazine - Spring 2016 - 85
IEEE Solid-State Circuits Magazine - Spring 2016 - 86
IEEE Solid-State Circuits Magazine - Spring 2016 - 87
IEEE Solid-State Circuits Magazine - Spring 2016 - 88
IEEE Solid-State Circuits Magazine - Spring 2016 - 89
IEEE Solid-State Circuits Magazine - Spring 2016 - 90
IEEE Solid-State Circuits Magazine - Spring 2016 - 91
IEEE Solid-State Circuits Magazine - Spring 2016 - 92
IEEE Solid-State Circuits Magazine - Spring 2016 - 93
IEEE Solid-State Circuits Magazine - Spring 2016 - 94
IEEE Solid-State Circuits Magazine - Spring 2016 - 95
IEEE Solid-State Circuits Magazine - Spring 2016 - 96
IEEE Solid-State Circuits Magazine - Spring 2016 - 97
IEEE Solid-State Circuits Magazine - Spring 2016 - 98
IEEE Solid-State Circuits Magazine - Spring 2016 - 99
IEEE Solid-State Circuits Magazine - Spring 2016 - 100
IEEE Solid-State Circuits Magazine - Spring 2016 - 101
IEEE Solid-State Circuits Magazine - Spring 2016 - 102
IEEE Solid-State Circuits Magazine - Spring 2016 - 103
IEEE Solid-State Circuits Magazine - Spring 2016 - 104
IEEE Solid-State Circuits Magazine - Spring 2016 - 105
IEEE Solid-State Circuits Magazine - Spring 2016 - 106
IEEE Solid-State Circuits Magazine - Spring 2016 - 107
IEEE Solid-State Circuits Magazine - Spring 2016 - 108
IEEE Solid-State Circuits Magazine - Spring 2016 - 109
IEEE Solid-State Circuits Magazine - Spring 2016 - 110
IEEE Solid-State Circuits Magazine - Spring 2016 - 111
IEEE Solid-State Circuits Magazine - Spring 2016 - 112
IEEE Solid-State Circuits Magazine - Spring 2016 - 113
IEEE Solid-State Circuits Magazine - Spring 2016 - 114
IEEE Solid-State Circuits Magazine - Spring 2016 - 115
IEEE Solid-State Circuits Magazine - Spring 2016 - 116
IEEE Solid-State Circuits Magazine - Spring 2016 - 117
IEEE Solid-State Circuits Magazine - Spring 2016 - 118
IEEE Solid-State Circuits Magazine - Spring 2016 - 119
IEEE Solid-State Circuits Magazine - Spring 2016 - 120
IEEE Solid-State Circuits Magazine - Spring 2016 - 121
IEEE Solid-State Circuits Magazine - Spring 2016 - 122
IEEE Solid-State Circuits Magazine - Spring 2016 - 123
IEEE Solid-State Circuits Magazine - Spring 2016 - 124
IEEE Solid-State Circuits Magazine - Spring 2016 - Cover3
IEEE Solid-State Circuits Magazine - Spring 2016 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/mssc_fall2023
https://www.nxtbook.com/nxtbooks/ieee/mssc_summer2023
https://www.nxtbook.com/nxtbooks/ieee/mssc_spring2023
https://www.nxtbook.com/nxtbooks/ieee/mssc_winter2023
https://www.nxtbook.com/nxtbooks/ieee/mssc_fall2022
https://www.nxtbook.com/nxtbooks/ieee/mssc_summer2022
https://www.nxtbook.com/nxtbooks/ieee/mssc_spring2022
https://www.nxtbook.com/nxtbooks/ieee/mssc_winter2022
https://www.nxtbook.com/nxtbooks/ieee/mssc_fall2021
https://www.nxtbook.com/nxtbooks/ieee/mssc_summer2021
https://www.nxtbook.com/nxtbooks/ieee/mssc_spring2021
https://www.nxtbook.com/nxtbooks/ieee/mssc_winter2021
https://www.nxtbook.com/nxtbooks/ieee/mssc_fall2020
https://www.nxtbook.com/nxtbooks/ieee/mssc_summer2020
https://www.nxtbook.com/nxtbooks/ieee/mssc_spring2020
https://www.nxtbook.com/nxtbooks/ieee/mssc_winter2020
https://www.nxtbook.com/nxtbooks/ieee/mssc_fall2019
https://www.nxtbook.com/nxtbooks/ieee/mssc_summer2019
https://www.nxtbook.com/nxtbooks/ieee/mssc_2019summer
https://www.nxtbook.com/nxtbooks/ieee/mssc_2019winter
https://www.nxtbook.com/nxtbooks/ieee/mssc_2018fall
https://www.nxtbook.com/nxtbooks/ieee/mssc_2018summer
https://www.nxtbook.com/nxtbooks/ieee/mssc_2018spring
https://www.nxtbook.com/nxtbooks/ieee/mssc_2018winter
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_winter2017
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_fall2017
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_summer2017
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_spring2017
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_winter2016
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_fall2016
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_summer2016
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_spring2016
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_winter2015
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_fall2015
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_summer2015
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_spring2015
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_winter2014
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_fall2014
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_summer2014
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_spring2014
https://www.nxtbookmedia.com