From c35ee175ef3a4cc4fd3c01ad242dbf8128fb4c63 Mon Sep 17 00:00:00 2001 From: Lukas Steiner Date: Tue, 12 Nov 2024 15:51:36 +0000 Subject: [PATCH] Update on Overleaf. --- content/01_intro.tex | 7 - content/02_related_works.tex | 12 - content/03_overview.tex | 5 - drampower-abstract.tex | 2 + drampower-acknowledgements.tex | 1 + drampower-authors.tex | 2 +- drampower-main.tex | 1132 +++++++++++++++++++- drampower-settings.tex | 2 + drampower.bib | 1792 +++----------------------------- img/bankwise_current.tex | 83 ++ img/currents_table.tex | 13 + img/implicit_commands.tex | 43 + img/refresh_currents.tex | 99 ++ img/switching_signals.tex | 26 + 14 files changed, 1537 insertions(+), 1682 deletions(-) delete mode 100644 content/01_intro.tex delete mode 100644 content/02_related_works.tex delete mode 100644 content/03_overview.tex create mode 100644 drampower-acknowledgements.tex create mode 100644 img/bankwise_current.tex create mode 100644 img/currents_table.tex create mode 100644 img/implicit_commands.tex create mode 100644 img/refresh_currents.tex create mode 100644 img/switching_signals.tex diff --git a/content/01_intro.tex b/content/01_intro.tex deleted file mode 100644 index 43b69fb..0000000 --- a/content/01_intro.tex +++ /dev/null @@ -1,7 +0,0 @@ -\section{Introduction} - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi -malesuada, quam in pulvinar varius, metus nunc fermentum urna, id -sollicitudin purus odio sit amet enim. Aliquam ullamcorper eu ipsum -vel mollis. Curabitur quis dictum nisl. Phasellus vel semper risus, et -lacinia dolor. Integer ultricies commodo sem nec semper.\cite{texbook} diff --git a/content/02_related_works.tex b/content/02_related_works.tex deleted file mode 100644 index 2730c98..0000000 --- a/content/02_related_works.tex +++ /dev/null @@ -1,12 +0,0 @@ -\section{Related Work} - -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. - - -\subsection{Something related} - -Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. - -\subsection{Something related} - -Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. \ No newline at end of file diff --git a/content/03_overview.tex b/content/03_overview.tex deleted file mode 100644 index 5368979..0000000 --- a/content/03_overview.tex +++ /dev/null @@ -1,5 +0,0 @@ -\section{Overview} - -Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur? - -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur \ No newline at end of file diff --git a/drampower-abstract.tex b/drampower-abstract.tex index c7be644..22996f8 100644 --- a/drampower-abstract.tex +++ b/drampower-abstract.tex @@ -6,6 +6,8 @@ DRAMPower is a cool thing that makes things and allows you to do things. Very cool! + + diff --git a/drampower-acknowledgements.tex b/drampower-acknowledgements.tex new file mode 100644 index 0000000..b37957e --- /dev/null +++ b/drampower-acknowledgements.tex @@ -0,0 +1 @@ +\section{Acknowledgements} diff --git a/drampower-authors.tex b/drampower-authors.tex index d2d7258..5e31581 100644 --- a/drampower-authors.tex +++ b/drampower-authors.tex @@ -24,7 +24,7 @@ \country{Germany} } -\author{Prof. Dr.-Ing. Matthias Jung} +\author{Matthias Jung} \email{m.jung@uni-wuerzburg.de} \orcid{0000-0003-0036-2143} \affiliation{% diff --git a/drampower-main.tex b/drampower-main.tex index 006788f..6cc571f 100644 --- a/drampower-main.tex +++ b/drampower-main.tex @@ -22,7 +22,8 @@ %% for your publication. %% %% -\documentclass[sigconf]{acmart} +\documentclass[sigconf, anonymous, review]{acmart} +%\documentclass[sigconf]{acmart} %% %% \BibTeX command to typeset BibTeX logo in the docs @@ -35,7 +36,99 @@ %% Document Settings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\input{drampower-settings} +%\input{drampower-settings} +%% +%% Set the title of the paper here +\newcommand{\papertitle}{ + DRAMPower~5: An Open-Source Power Simulator for Current Generation DRAM Standards +} + +%% +%% Conference settings +%\copyrightyear{2025} +%\acmYear{2025} +%\setcopyright{acmlicensed}\acmConference[RAPIDO 2025]{Proceedings of the 2023 Workshop on System Engineering for constrained embedded systems}{January 17--18, 2023}{Toulouse, France} +%\acmBooktitle{Proceedings of the 2023 Workshop on System Engineering for constrained embedded systems (RAPIDO 2023), January 17--18, 2023, Toulouse, France} +%\acmPrice{15.00} +%\acmDOI{10.1145/3579170.3579259} +%\acmISBN{979-8-4007-0045-3/23/01} + +%% +%% Paper logo settings +\newcommand{\paperlogo}{ +\begin{teaserfigure} + \includegraphics[width=\textwidth]{figs/logo_drampower_5_0.png} + \caption{DRAMPower 5.0 Logo} + \Description{DRAMPower 5.0 Logo.} + \label{fig:logo} +\end{teaserfigure} +} + +%% +%% Keyword settings +\newcommand{\paperkeywords}{\keywords{ + DRAMPower, DRAM, power, simulation, interface +}} + +\usepackage{subcaption} +\usepackage{siunitx} +\usepackage{tikz} +\usetikzlibrary{patterns,arrows,decorations.pathreplacing} +\usetikzlibrary{arrows.meta} +%\usetikzlibrary{arrows,automata} +\usetikzlibrary{positioning} +\usetikzlibrary{positioning,shadows,trees} +\usepackage{pgfplots} + +\usepackage{tikz-timing}[2009/12/09] +\usetikztiminglibrary{overlays} + +%%% Timing Diagram Setup %%% +%Define different DRAM commands: +\tikztimingmetachar{A}{1.0D{\texttt{ACT}}} +\tikztimingmetachar{P}{1.0D{\texttt{PRE}}} +\tikztimingmetachar{X}{1.0D{\texttt{DES}}} +\tikztimingmetachar{R}{1.0D{\texttt{RDA}}} +\tikztimingmetachar{W}{1.0D{\texttt{WR}}} +\tikztimingmetachar{O}{1.0D{\texttt{NOP}}} + +\newcommand{\timemeasure}[4] +{ + \draw [red,semithick] ($ (#1) - (-0.1,0) $) -- ($ (#1) - (-0.1,#3) -(0,1) $); + \draw [red,semithick] ($ (#2) - (-0.1,0) $) -- ($ (#2) - (-0.1,#3) -(0,1) $); + \draw [red,semithick,>=triangle 60, {Latex}-{Latex}] ($ (#1) - (-0.1,#3) $) -- ($ (#2) - + (-0.1,#3) $) node [below,midway] {#4}; +} + +\newcommand{\timemeasuup}[4] +{ + \draw [red,semithick] ($ (#1) - (-0.1,0) $) -- ($ (#1) - (-0.1,#3) -(0,-1) $); + \draw [red,semithick] ($ (#2) - (-0.1,0) $) -- ($ (#2) - (-0.1,#3) -(0,-1) $); + \draw [red,semithick,>=triangle 60, <->] ($ (#1) - (-0.1,#3) $) -- ($ (#2) + - (-0.1,#3) $) node [above,midway] {#4}; +} + + +\newcommand*\circled[1]{ + \tikz[baseline=(char.base)]{ + \node[shape=circle,draw,inner sep=0.5pt,fill=white] (char) {\scriptsize#1}; + } +} + +\newcommand*\circledx[1]{ + \tikz[baseline=(char.base)]{ + \node[shape=circle,draw,inner sep=0.1pt,fill=white] (char) {\tiny\tiny#1}; + } +} + +\usepackage{circuitikz} + +\newcommand\todo[1]{\textcolor{red}{#1}} +\hyphenation{pre-charged} + +%\received{20 February 2007} +%\received[revised]{12 March 2009} +%\received[accepted]{5 June 2009} %% %% end of the preamble, start of the body of the document source. @@ -46,18 +139,1041 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \title{\papertitle} -\input{drampower-authors} -\input{drampower-abstract.tex} -\paperlogo + +%% +%% The "author" command and its associated commands are used to define +%% the authors and their affiliations. +%% Of note is the shared affiliation of the first two authors, and the +%% "authornote" and "authornotemark" commands +%% used to denote shared contribution to the research. + +\author{Lukas Steiner} +\email{lukas.steiner@rptu.de} +\orcid{0009-0009-3368-5396} +\affiliation{% + \institution{University of Kaiserslautern-Landau} + \city{Kaiserslautern} + \country{Germany} +} + +\author{Thomas Psota} +\email{thomas.psota@iese.fraunhofer.de} +\orcid{0009-0009-3368-5396} +\affiliation{% + \institution{Fraunhofer IESE} + \city{Kaiserslautern} + \country{Germany} +} + +\author{Marco Mörz} +\email{marco.moerz@iese.fraunhofer.de} +\orcid{} +\affiliation{% + \institution{Fraunhofer IESE} + \city{Kaiserslautern} + \country{Germany} +} + +\author{Derek Christ} +\email{derek.christ@uni-wuerzburg.de} +\orcid{} +\affiliation{% + \institution{Julius-Maximilians-Universität} + \city{Würzburg} + \country{Germany} +} + +\author{Matthias Jung} +\email{m.jung@uni-wuerzburg.de} +\orcid{0000-0003-0036-2143} +\affiliation{% + \institution{Julius-Maximilians-Universität} + \city{Würzburg} + \country{Germany} +} + +\author{Norbert Wehn} +\email{norbert.wehn@rptu.de} +\orcid{0000-0002-9010-086X} +\affiliation{% + \institution{University of Kaiserslautern-Landau} + \city{Kaiserslautern} + \country{Germany} +} + +%% +%% The abstract is a short summary of the work to be presented in the +%% article. +\begin{abstract} +As memory-intensive applications continue to drive demand for efficient, high-performance DRAM, accurately modeling DRAM power consumption has become critical for optimizing system design and meeting energy-efficiency requirements. DRAM power consumption is a significant contributor to overall system power, especially in data centers, mobile devices, and edge computing, where power budgets are often constrained. DRAMPower 5 addresses this need by offering an open-source, detailed power analysis tool that now supports the latest JEDEC standards, including DDR5 and LPDDR5. This latest version introduces a refined interface power model, capturing specific interface dynamics that are increasingly relevant for emerging DRAM technologies, enhancing the accuracy of power estimations. Furthermore, DRAMPower 5 is designed with a flexible, modular architecture, enabling straightforward extensibility to support future DRAM standards and custom configurations. These features make DRAMPower 5 an essential tool for researchers and engineers focused on precise, scalable power analysis for current and next-generation DRAM systems. +\end{abstract} +%\paperlogo \maketitle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Body Text %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\input{content/01_intro} -\input{content/02_related_works} -\input{content/03_overview} +%\input{content/01_intro} +%Intro +%Related +%DRAM Background: Short Intro of DRAM Interface and Core, single ended bidirection DQ, differential data strobe, data sampled when DQS\_t and DQS\_c cross -> double data rate +% +\section{Introduction} +%Keywords: data centric applications, huge DRAM requirements, study found out that DRAM contributes ... to total power consumption +% +Siehe Abstract!! +The recent expansion of memory-intensive applications has led to increased demand for DRAM bandwidth and capacity in current computing systems. +This demand is particularly pronounced in \textit{Artificial Intelligence} (AI) applications, where specialized accelerator chips with immense DRAM bandwidths beyond 1\,TBps are used. +However, these bandwidths come at the cost of high power consumption. +Google recently demonstrated that for large machine learning models, more than 90\,\% of the system power is consumed by memory. +In augmented reality devices for the Metaverse, memory can account for up to 80\,\% of power consumption.\todo{quellen} +Therefore, an accurate estimation of the DRAM power consumption is crucial already in early development stages to dimension the power supply circuits and cooling appropriately. + +two well known tools: DRAMPower for core and CACTI-IO for interface: only older standards, lower data rates +new standards offer lots of new features and much higher data rates, which require special consideration. +% +However, modeling the power consumption of DRAM is intricate due to the diverse range of DRAM standards tailored for different applications, each with unique interface architectures (such as DIMM, POP, TSV, \dots), and varied power characteristics, particularly concerning the interface. Moreover, these standards present a significantly expanded feature set compared to earlier ones, including new types of refresh operations or power-down mechanisms. + + + + + + +To the best of our knowledge, there exists no simulation tool that accurately models interface power and supports latest standards including DDR5, LPDDR5 and HBM3. Thus this paper presents a new DRAMPower simulator, called DRAMPower 5, which includes a new simulation kernel for a very efficient simulation, as well as the latest DRAM JEDEC standards. + +This paper makes the following new contributions: +\begin{itemize} + \item An accurate interface power modeling based on physical equations for different topologies and using either real data that is transmitted or toggling rates + \item Support of latest standards including DDR5, LPDDR5 and HBM3 + \item Measurement conditions + Included new features like same/per-bank refresh, DBI, etc. + \item A new simulation kernel for fast DRAM power simulations, data-dependent POPCNT... +\end{itemize} + +The rest of the paper is structured as follows ... + +%\input{content/02_related_works} +\section{Related Work} +In this section we provide an overview of the related work. A well-known and often +used DRAM power model is provided by Micron in form of a spread +sheet~\cite{micron_ddr3_11_kopie_ipsj}. It estimates the power from data sheet +and workload specifications (e.g. Rowbuffer-Hit-Rate or Read-Write-Ratio). However, +this model is not accurate enough, as it assumes only certain workload +characteristics and it is not looking on the actual executed application. +There are further limitations in that model: Micron uses the minimal timing constrains +from the datasheet specifications instead of the actual timings. But in +practice there are dependencies between consecutive memory accesses so that the +controller may accelerate or postpone commands. Furthermore, Micron assumes that +the controller uses a close-page policy (precharge after each memory access) and +that there is only one bank open at the same time. Due to this, a large lack of +flexibility and accuracy exists in this model. +% +A better model is DRAMPower, by Chandrasekar et al.~\cite{kargoo_14} and it's +extensions~\cite{junmat_16b}, which uses the actual timings from the executed +DRAM transactions. +% +Another Power model, similar to DRAMPower is called Vampire~\cite{ghoyag_18}, +which also accounts for variations in module and data value dependency. +% +This paper presents a complete version of DRAMPower including a new and +efficient simulation kernel, as well as all modern JEDEC standards. +\todo{CACTI-IO~\cite{joukah_12,joukah_15}, CACTI 7~\cite{balkah_17}, NVSim~\cite{donxu_12}} +%% dramsys? +%% gibt es sonst was? +% DRAMPower3/4 +%% Vampire +% Vampire ist schön und gut, wenn man die Messungergebnisse für ein bestimmtes Device vorliegen hat. In den meisten Fällen ist das aber nicht der Fall. +% Fraglich ist, ob die Datenabhängigkeit und strukturelle Abhängigkeit der Core-Power wirklich so groß ist wie im Paper berichtet. +% Was Vampire nicht betrachtet sind verschiedene Konfigurationen für das Interface -> PCB, Targer und NT Terminierung, etc. +% Micron Excel-Sheet +% CACTI-IO + +%\input{content/03_overview} +\section{DRAM Background} +% +This section provides the necessary background on the DRAM core and interface between memory controller and DRAM device that is relevant for power modeling. +% +\subsection{Core} +% +DRAM is a type of memory mainly optimized for a low cost per bit. +To achieve a high storage density, the chips are internally organized in a hierarchical fashion consisting of columns, rows, banks and for newer standards bank groups. +When data should be read or written from or to a column, the corresponding row must be activated first. +Within each bank, only one row can be active at a time and the bank must be precharged before a new row can be activated. +DRAM uses electrical charge held in a tiny capacitor to store information. +As the capacitor leaks the charge over time, each DRAM cell must be refreshed regularly (usually every 32 to 64\,ms). +The refresh operation is triggered externally by the memory controller with a refresh command. +During refresh, no data can be accessed. +Thus, only a few rows are refreshed each time to avoid long access delays and a refresh command is sent every few microseconds. +To save energy, DRAM devices can be put into a power down mode when no data accesses are performed. +This disables parts of the core and interface. +However, in order to perform refreshes for data retention, it is necessary to interrupt the power down mode periodically. +To avoid this, the self refresh mode can be entered where data retention is managed by the device itself and no refresh commands need to be provided by the memory controller. +% +\subsection{Interface} +% +All modern DRAM subsystems use a bidirectional single-ended \textit{data bus} (DQ) to transfer data from the memory controller to the DRAM devices or the other way round. +To sample the data at the correct time, a differential \textit{data strobe} pair (DQS\_t/DQS\_c) is provided by the driving side. +Since data is sampled both at the rising and the falling edge of the data strobe (intersection of DQS\_t and DQS\_c), the bus operates at \textit{double data rate} (DDR). +Commands and addresses are transferred from the memory controller to the DRAM devices over a unidirectional \textit{command/address bus} (CA). +They are sampled on the edges of a differential clock signal pair (CK\_t/CK\_c) that is also driven by the memory controller. +Depending on the standard, the command/address bus is either operated at \textit{single data rate} (SDR) or double data rate. +In addition, the transfer of a single command can take one or multiple clock cycles depending on the standard because the width of the command/address bus varies. +Since all modern DRAM standard operate at frequencies in the gigahertz range with data rates reaching up to 10\,Gbps/pin, termination at the receiver side is required to ensure signal integrity. +% +To increase the memory capacity, multiple DRAM devices can be connected to the same memory controller, sharing the command/address as well as data bus (so-called ranks). +Each target device can be selected using a dedicated \textit{chip select} signal (CS). +The physical (inter)connection between memory controller and DRAM can be realized in different ways, e.g., through a classical printed circuit board (PCB), a package on package (PoP) arrangement or a silicon interposer. +All these channels have different characteristics in terms of load capacitances, reflections and loss, so they need to be modeled individually for an accurate power estimation. +One connection type widely used in PCs and servers is the dual inline memory module (DIMM). +Multiple DRAM chips are soldered onto a small PCB with pins on the bottom edge, which is then plugged into a socket on the main PCB. +DIMMs require special considerations for power modeling as there are different wiring topologies, off-die termination schemes and in some cases additional buffer chips for the command/address bus and data bus. +% +\section{Overview of JEDEC DRAM Standards} +% +\todo{Special features see Luizas Master Thesis, e.g., DBI, write X, new refresh modes etc.} +Over the last quarter century, JEDEC has published more than 20 different DRAM standards. +As DRAM application fields become more heterogeneous, so do the standards. +Currently, there are four major families: +\begin{itemize} + \item \textit{DDR} is used as general-purpose memory for PCs and servers as it provides high capacities at a low cost. It can be organized as single devices or DIMMs. + \item \textit{Low-Power DDR (LPDDR)} is optimized for a low power consumption and mainly used in battery-powered devices like smartphones or embedded systems. + \item \textit{Graphics DDR (GDDR)} offers higher bandwidths than DDR and is mainly used in GPUs. + \item \textit{High Bandwidth Memory (HBM)} provides even higher bandwidths than GDDR by utilizing a much wider data bus and a silicon interposer for connection. It is mainly used in high-performance GPUs and ASICs. +\end{itemize} +% +While the DRAM core is structured similarly for all the standards, the interfacing between memory controller and DRAM differs greatly. +These differences reach from the pin count over the termination scheme and signaling voltage to the clocking architecture. +In addition, newer standards add additional commands for an optimized performance and power consumption. +\todo{In this first release of the revised version of DRAMPower, we focus on the DDR and LPDDR families, more specifically on DDR3/4/5 and LPDDR4/4X/5/5X. +GDDR and HBM will be added in a future release.} +Figure~\ref{tab:standards} provides an overview of the most important features and characteristics of each standard. + + +Interface depends on controller and devices -> not fixed for one device + + +% +DDR3: push pull termination DQ +DDR4: pseudo open drain logic (PODL) DQ, DBI, +LPDDR4: low voltage swing termination logic (LVSTL) +HBM: active inductor, doubled current (Active-Inductive CTLE continuous-time linear equalizer) + +Input/output capacitance is specified in standard + +%\begin{table*} +% \centering +% \caption{Feature Overview of JEDEC Standards} +% \label{tab:standards} +% \begin{tabular}{c|c|c|c} +% Standard & Termination & Operating Voltages & Special Features\\ +% DDR3 & SSTL & 1.5/1.5 & \\ +% DDR4 & PODL & 2.5/1.2/1.2 & Data Bus Inversion\\ +% DDR5 & PODL & 1.8/1.1/1.1 & Write Pattern, Command \& Address Inversion\\ +% LPDDR4 & LVSTL & 1.8/1.1/1.1\\ +% LPDDR4X & LVSTL & 1.8/1.1/0.6\\ +% LPDDR5 & LVSTL & 1.8/1.05/0.5 & Write Clock\\ +% \end{tabular} +%\end{table*} + +DIMM Features: +DDR3 UDIMM: Fly-By topology except for DQ/DM and DQS, Push-Pull Termination CK\_t, CK\_c, CTRL (S0\_n, ODT0, CKE0), CMD, Series resistor Rs for DQ/DM and DQS\_t/DQS\_c, other DIMMs: LRDIMM, RDIMM, SODIMM... +DDR4 UDIMM: Fly-By topology except for DQ/DM and DQS, Push-Pull Termination ... +DDR5 UDIMM: Fly-By , other DIMMs: LRDIMM, RDIMM, SODIMM, CUDIMM (clocked unbuffered)... +% +% +\section{Core Power Modeling} +% +This section explains the modeling of core power, while the modeling of interface power is topic of the next section. +Core and interface can be considered completely independent of each other because they use different supply voltages. +Core power refers to the power consumed by the internal circuitry of the DRAM device, i.e., the memory arrays, sense amplifiers, row and column decoders, I/O gating and control logic. +The receiver circuits at the interface are also operated with the core supply voltage and are therefore part of the core power. +As the internal architecture of modern DRAM devices is very complex and highly proprietary, core power calculation cannot be based on circuit analysis. +However, each DRAM standard defines a set of currents for fixed operating scenarios, which are listed in vendor datasheets. +Based on these currents, the core power can be estimated. +%%%% +\todo{Place in other position} +This approach still faces two problems, which have been highlighted by Ghose et al. in~\cite{ghoyag_18}. +First, the device-to-device variations are very large, which forces the vendors to be very pessimistic when specifying the operating currents. +As a consequence, power is overestimated in most cases. +Second, the currents are measured for fixed data and address patterns, i.e., no data dependencies and structural variations within the device are considered. +If a more accurate modeling is required, the calculations can still be refined with additional device measurements. +%%%% +The following section provides an overview of these currents. +% +\subsection{Current Measurement Conditions} +% +The minimum set specified in all JEDEC standards includes the following nine currents: +% +\begin{itemize} + \item $I_{DD0}$ (Operating one bank active-precharge current): Activate and precharge commands are sent alternately with minimum spacing. The target bank is toggled with each activate command. + \item $I_{DD2N}$ (Precharge standby current): All banks are precharged and no commands are issued. + \item $I_{DD2P}$ (Precharge power-down current): All banks are precharged, no commands are issued and the device is in power-down mode. + \item $I_{DD3N}$ (Active standby current): All banks are active and no commands are issued. + \item $I_{DD3P}$ (Active power-down current): All banks are active, no commands are issued and the device is in power-down mode. + \item $I_{DD4R}$ (Operating burst read current): All banks are active and read commands are issued with minimum spacing. The target bank is toggled with each read command. + \item $I_{DD4W}$ (Operating burst write current): All banks are active and write commands are issued with minimum spacing. The target bank is toggled with each write command. + \item $I_{DD5B}$ (Burst refresh current): Refresh commands are issued with minimum spacing. + \item $I_{DD6}$ (Self refresh current): The device is in self-refresh operation and the external clock is turned off. +\end{itemize} +% +Unfortunately, JEDEC is very inconsistent in specifying the currents. +Apart from different naming schemes, the measurement conditions mentioned above only apply for standards of the DDR family, while they differ for LPDDR, GDDR and HBM. +For example, LPDDR measures $I_{DD3N}$, $I_{DD3P}$, $I_{DD4R}$ and $I_{DD4W}$ with only one bank active. +GDDR measures $I_{DD3N}$ and $I_{DD3P}$ with one bank active, while $I_{DD4R}$ and $I_{DD4W}$ are measured with one bank in each bank group active. +HBM, in turn, measures $I_{DD3N}$ and $I_{DD3P}$ with one bank active and $I_{DD4R}$ as well as $I_{DD4W}$ with all banks active. +Section~\ref{subsec:bankwise} explains how these different measurement conditions are treated to achieve a universal bank-sensitive power model. +Similarly, the refresh currents are also measured under various conditions. +While DDR standards specify a burst refresh current $I_{DD5B}$ for all available refresh modes, LPDDR standards specify a burst refresh current only for all-bank refresh, while for per-bank refresh, an average current $I_{DD5A}$ is provided. +The difference between $I_{DD5B}$ and $I_{DD5A}$ is the spacing between two consecutive refresh commands. +It is the refresh cycle time $t_{RFC}$ (i.e., the duration of a single refresh operation) for $I_{DD5B}$ and the average refresh interval $t_{REFI}$ (i.e., the interval at which refresh commands need to be issued in normal operation) for $I_{DD5A}$. +GDDR5, GDDR5X, GDDR6, HBM1 and HBM2 do not specify a current for per-bank refresh at all although they support it, while HBM3 specifies a burst refresh current both for all-bank and per-bank refresh. +Section~\ref{subsec:refresh} shows how refresh power can be modeled using the provided currents of each standard. +\todo{introduce pb refresh earlier, say that abbreviations in the paper do not always match abbreviations in standard} +\todo{last subsection? extra features, maybe future work?} +\todo{multiple supply voltages!} + +\subsection{Universal Bank-Sensitive Model}\label{subsec:bankwise} +% +The DRAM core power is composed of background power and command power. +A bank-sensitive model is used for the background power, i.e. the more banks are active, the higher the power consumption. +This model was already introduced in previous versions of the tool~\cite{junmat_16b,matzul_17} and provides higher accuracy compared to a model that only distinguishes between two states (either active or precharged) like the Micron system power calculator~\cite{micron_ddr3_11_kopie_ipsj}. +As shown in Figure~\ref{fig:bank_sensitive_currents} for a DRAM of the DDR family with $B$ banks, $I_{DD2N}$ is drawn when all banks are precharged and $I_{DD3N}$ is drawn when all $B$ banks are active. +The span in between is not divided linearly depending on the number of active banks, but there is an offset when activating the first bank. +This is due to the fact that additional logic must be switched on when the first bank is activated. +% +\begin{figure} + \centering + \input{img/bankwise_current} + \caption{Bank-Sensitive Currents~\cite{junmat_16b}} + \label{fig:bank_sensitive_currents} +\end{figure} +% +$\rho$ is a vendor- and device-specific factor between 0 and 1, which can be determined by measurement~\cite{junmat_16b}. +Alternatively, the pessimistic assumption of $\rho = 1$ can be made, which leads to the simplified model with only two distinct states as used by Micron~\cite{micron_ddr3_11_kopie_ipsj}. +For standards of the DDR family, it is $I_{DD3N} = I_{\circled{B}}$, while for LPDDR, GDDR and HBM, it is $I_{DD3N} = I_{\circled{1}}$. +This difference must be taken into account when calculating the background power. +\todo{Formel} +When the DRAM is in power-down mode, the dependence of the current on the number of active banks is much smaller, so we only distinguish between two states characterized by $I_{DD2P}$ and $I_{DD3P}$. + +The average command power is calculated by counting the number of commands of each type, adding up the energy that is consumed for all these commands, and dividing the total energy by the simulated time. +As for the background power, the differences among the standards must be taken into consideration for the command power as well. +In \cite{junmat_16b}, the energy for a read command $E_{RD}$ is calculated as +\begin{equation} + E_{RD} = V_{DD} \cdot (I_{DD4R} - I_{DD3N}) \cdot \frac{BL}{DR} \cdot t_{CK} +\end{equation} +where $V_{DD}$ is the core supply voltage, $BL$ is the burst length, $DR$ is the data rate and $t_{CK}$ is the clock period. +For a write command, $I_{DD4R}$ is replaced with $I_{DD4W}$. +However, this equation only works if $I_{DD4R}$ and $I_{DD3N}$ are measured with the same number of banks active, which is not the case for GDDR and HBM. +Thus, the equations need to be adapted accordingly, i.e., for GDDR, $I_{DD3N}$ must be replaced with $I_{\circled{BG}}$ with $BG$ being the number of bank groups, while for HBM, $I_{DD3N}$ must be replaced with $I_{\circled{B}}$. +% +\todo{introduce burst length earlier} +% +%\subsection{Current Measurement Conditions} +%% +%All JEDEC standards specify multiple currents for different operating scenarios. +%Using the provided values of vendor datasheets, the power consumption of the devices can be estimated. +%However, JEDEC is very inconsistent with the current measurement conditions, meaning that the same current can describe different operating scenarios depending on the standard. +%For example, the active standby current IDD3N is measured with all banks active for DDR standards, while it is measured with only a single bank active for LPDDR standards. +%Similarly, for IDD4R and IDD4W, all banks are active for DDR, while only a single bank is active for LPDDR. +%This has to be taken into account... +% +% +% +%All modern JEDEC standards specify at least three supply voltages. +%Most standards denote them as VDD, VPP and VDDQ, while LPDDR standards use VDD1, VDD2 and VDDQ. +%VDD/VDD1: main supply voltage +%VPP/VDD2: pump voltage/wordline boost/activation +%VDDQ: supply voltage for output drivers (DQ, DQS\_t, DQS\_c) +% +%The currents specified by the JEDEC standards are provided separately for each supply voltage in the datasheets. +%Most important currents exemplarily for VDD specified in table +%\begin{table} +%\caption{} +%\label{tab:configs} +%\centering +%\resizebox{\linewidth}{!}{% +%\input{img/currents_table} +%} +%\end{table} +%, which is responsible for performing the core memory operations. +%, i.e., storing data in the memory array that was received on the interface, transferring like reading, writing, refreshing, and storing data. +%% +%Components: +%Memory array operations: Power consumed during data access, including charging and discharging the DRAM cells when data is read from or written to them. +%Refresh operations: DRAM cells need to be refreshed periodically to retain their data, and this refresh process consumes core power. +%Row and column decoders: These circuits select which rows and columns in the memory array are accessed during a read or write operation. +%Sense amplifiers: These are used to detect the small charge differences in the memory cells when reading data, and they also contribute to core power consumption. +%Key Characteristics: +%Dependent on the internal operations and how frequently the memory is accessed or refreshed. +%Affected by DRAM timing parameters (like tRCD, tRAS, etc.) and the DRAM's operational state (active vs idle). +% +%Core power is hard to calculate based on physical equations/properties because the DRAM vendors do not publish any information about the internal structure of the DRAM devices. +%However, the vendors publish data sheets of their devices with measured currents for specific operations (see Section current measurement conditions). +%Although these measurements are very pessimistic, they can be used as a rough estimate for core power calculations, can also be refined with own measurements of devices. +% +\subsection{Refresh Power}\label{subsec:refresh} +% +\begin{figure} + \centering + \resizebox{\linewidth}{!}{% + \input{img/refresh_currents} + } + \caption{Refresh Currents} + \label{fig:refresh_currents} +\end{figure} +% +\begin{equation} + I_{DD5B} = I_{DD2N} + \left(I_{DD5A} - I_{DD2N}\right) \cdot \frac{t_{REFI}}{t_{RFC}} +\end{equation} +% +The equation can be used to calculate the burst refresh current of different refresh modes by substituting the average refresh current $I_{DD5A}$, refresh interval $t_{REFI}$ and refresh cycle time $t_{RFC}$ with the appropriate values. +During refresh, the device is considered in active state because internally the banks are constantly activated and refreshed. +The energy for an all-bank refresh command can be calculated as +\begin{equation} + E_{REFab} = V_{DD} \cdot \left(I_{DD5Bab} - I_{DD3N}\right) \cdot t_{RFCab} +\end{equation} +When per-bank refresh is used, only a single bank is refreshed at a time. +Thus, only a single bank is considered active and the equation changes to +\begin{equation} + E_{REFpb} = V_{DD} \cdot \left(I_{DD5Bpb} - I_{\circled{1}}\right) \cdot t_{RFCpb} +\end{equation} +% +Same-bank refresh for device with \textit{BG} bank groups and \textit{BA} banks per bank group +\begin{equation} + E_{REFpb} = V_{DD} \cdot \left(I_{DD5Bsb} - I_{\circled{BG}}\right) \cdot t_{RFCsb} +\end{equation} +% +\section{Interface Power Modeling} +\todo{in contrast to core power which is fixed for specific device, interface power depends on complete DRAM subsystem architecture} +\todo{cite \cite{dalpou_98} \cite{bak_90}} +% +Interface power refers to the power consumed/dissipated by the input/output (I/O) circuitry that connects the memory controller and DRAM devices. +It can be divided into two parts: +% +\begin{itemize} + \item \textit{Termination power} is dissipated through the termination resistances required for signal integrity. \todo{Depending on the termination scheme, power is dissipated at both logic levels or only one logic level.} + \item \textit{Dynamic power} is dissipated through the lossy charging and discharging of parasitic capacitances \todo{and transmission lines}. It only appears when the signal toggles. +\end{itemize} +% +In the following, the calculation of termination power and dynamic power is explained. +% +\subsection{Termination Power} +\todo{also counting commands as for core power} +% +%%%% +%\begin{figure} +% \centering +% \begin{circuitikz} +% \ctikzset{bipoles/resistor/height=0.15} +% \ctikzset{bipoles/resistor/width=0.4} +% %\ctikzset{bipoles/tline/width=0.6} +% \draw (0,0) node[ieeestd buffer port, anchor=in](driver){}; +% \draw (driver.in) to[short, -o] ++(0,0); +% \draw (driver.up) -- ++(0,1) node[tground](VDDQ){$V_{DDQ}$}; +% \draw (driver.down) -- ++(0,-1) node[tlground](VSSQ){$V_{SSQ}$}; +% \draw (driver.bout) to[tline=$Z_0$, bipoles/tline/width=1, -*] ++(3,0) coordinate(TL); +% \draw (TL) to[R, a=$2R_{TT}$] (TL|-VDDQ) node[tground]{$V_{DDQ}$}; +% \draw (TL) to[R=$2R_{TT}$] (TL|-VSSQ) node[tlground]{}; +% \end{circuitikz} +% \caption{Low Voltage Swing Terminated Logic (LVSTL) Interface} +% \label{fig:term_push_pull} +%\end{figure} +%%%%% +%\begin{figure} +% \centering +% \begin{circuitikz} +% \ctikzset{bipoles/resistor/height=0.15} +% \ctikzset{bipoles/resistor/width=0.4} +% \draw (0,0) node[tground](VDDQ){} to[R=$R_{ON}$] ++(0,-1.5) to[short=$"1"$] ++(3,0) to[R=$R_{TT}$] ++(0,-1.5) node[tground](VDDQ2){}; +% \node[anchor=south] at (VDDQ) {$V_{DDQ}$}; +% \node[anchor=north] at (VDDQ2) {$V_{DDQ}/2$}; +% \end{circuitikz} +% \caption{Driving Logic 1 on Push Pull Termination Interface} +% \label{fig:term_push_pull} +%\end{figure} +%% +%\begin{figure} +% \centering +% \begin{circuitikz} +% \ctikzset{bipoles/resistor/height=0.15} +% \ctikzset{bipoles/resistor/width=0.4} +% \draw (0,0) node[tlground]{} to[R,a=$R_{ON}$] ++(0,1.5) to[short=$"0"$] ++(3,0) to[R,a=$R_{TT}$] ++(0,1.5) node[tground](VDDQ2){}; +% \node[anchor=south] at (VDDQ2) {$V_{DDQ}/2$}; +% \end{circuitikz} +% \caption{Driving Logic 0 on Push Pull Termination Interface} +% \label{fig:term_push_pull} +%\end{figure} +%% +%\begin{figure} +% \centering +% \begin{circuitikz} +% \ctikzset{bipoles/resistor/height=0.15} +% \ctikzset{bipoles/resistor/width=0.4} +% \draw (0,0) node[tlground]{} to[R,a=$R_{ON}$] ++(0,1.5) to[short=$"0"$] ++(3,0) to[R,a=$R_{TT}$] ++(0,1.5) node[tground](VDDQ){}; +% \node[anchor=south] at (VDDQ) {$V_{DDQ}$}; +% \end{circuitikz} +% \caption{Driving Logic 0 on POD Interface} +% \label{fig:term_push_pull} +%\end{figure} +%% +%\begin{figure} +% \centering +% \begin{circuitikz} +% \ctikzset{bipoles/resistor/height=0.15} +% \ctikzset{bipoles/resistor/width=0.4} +% \draw (0,0) node[tground](VDDQ){} to[R=$R_{ON}$] ++(0,-1.5) to[short=$"1"$] ++(3,0) to[R=$R_{TT}$] ++(0,-1.5) node[tlground](VSSQ){}; +% \node[anchor=south] at (VDDQ) {$V_{DDQ}$}; +% \end{circuitikz} +% \caption{Driving Logic 1 on LVSTL Interface} +% \label{fig:term_push_pull} +%\end{figure} +% +The termination power depends on the termination scheme, the \todo{signal/bus on time}, and the ratio between the two logic levels, but it is independent of the operating frequency. +There are three commonly used termination schemes for DRAM, shown in Figure~\ref{fig:term} for a simple point-to-point connection. +% +\begin{figure*} + \centering + \begin{subfigure}[b]{0.32\linewidth} + \centering + \resizebox{\linewidth}{!}{% + \begin{circuitikz} + \ctikzset{bipoles/resistor/height=0.15} + \ctikzset{bipoles/resistor/width=0.4} + %\ctikzset{bipoles/tline/width=0.6} + \draw (0,0) node[pmos, emptycircle, anchor=D](P){}; + \draw (0,0) node[nmos, anchor=D](N){}; + \draw (P.S) -- ++(0,0) node[tground](VDDQ){}; + \node[anchor=south] at (VDDQ) {$V_{DDQ}$}; + \draw (N.S) -- ++(0,0) node[tlground](VSSQ){}; + \draw (P.G) -- (N.G); + \draw (P.south west) to[short, *-o] ++(-0.5,0); + \draw (P.D) to[tline=$Z_0$, bipoles/tline/width=1, *-*] ++(3,0) coordinate(TL); + \draw (TL) to[R, a=$R_{TT}$] (TL|-VDDQ) node[tground](VDDQ1){}; + \node[anchor=south] at (VDDQ1) {$V_{DDQ}$}; + \draw (TL) -- ++(1.5,0) node[plain amp, anchor=in up, scale=0.6](recv){}; + \draw (recv.bin down) to[short=$V_{ref}$, -o] ++(-0.5,0); + \draw (recv.bout) to[short, -o] ++(0.5,0); + \end{circuitikz}% + } + \caption{Pseudo Open Drain Logic (PODL)} + \label{fig:term_podl} + \end{subfigure} +% + \begin{subfigure}[b]{0.32\linewidth} + \centering + \resizebox{\linewidth}{!}{% + \begin{circuitikz} + \ctikzset{bipoles/resistor/height=0.15} + \ctikzset{bipoles/resistor/width=0.4} + %\ctikzset{bipoles/tline/width=0.6} + \draw (0,0) node[pmos, emptycircle, anchor=D](P){}; + \draw (0,0) node[nmos, anchor=D](N){}; + \draw (P.S) -- ++(0,0) node[tground](VDDQ){}; + \node[anchor=south] at (VDDQ) {$V_{DDQ}$}; + \draw (N.S) -- ++(0,0) node[tlground](VSSQ){}; + \draw (P.G) -- (N.G); + \draw (P.south west) to[short, *-o] ++(-0.5,0); + \draw (P.D) to[tline=$Z_0$, bipoles/tline/width=1, *-*] ++(3,0) coordinate(TL); + \draw (TL) to[R=$R_{TT}$] (TL|-VSSQ) node[tlground]{}; + \draw (TL) -- ++(1.5,0) node[plain amp, anchor=in up, scale=0.6](recv){}; + \draw (recv.bin down) to[short=$V_{ref}$, -o] ++(-0.5,0); + \draw (recv.bout) to[short, -o] ++(0.5,0); + \end{circuitikz}% + } + \caption{Low Voltage Swing Term. Logic (LVSTL)} + \label{fig:term_lvstl} + \end{subfigure} + % + \begin{subfigure}[b]{0.32\linewidth} + \centering + \resizebox{\linewidth}{!}{% + \begin{circuitikz} + \ctikzset{bipoles/resistor/height=0.15} + \ctikzset{bipoles/resistor/width=0.4} + %\ctikzset{bipoles/tline/width=0.6} + \draw (0,0) node[pmos, emptycircle, anchor=D](P){}; + \draw (0,0) node[nmos, anchor=D](N){}; + \draw (P.S) -- ++(0,0) node[tground](VDDQ){}; + \node[anchor=south] at (VDDQ) {$V_{DDQ}$}; + \draw (N.S) -- ++(0,0) node[tlground](VSSQ){}; + \draw (P.G) -- (N.G); + \draw (P.south west) to[short, *-o] ++(-0.5,0); + \draw (P.D) to[tline=$Z_0$, bipoles/tline/width=1, *-*] ++(3,0) coordinate(TL); + \draw (TL) to[R, a=$2R_{TT}$] (TL|-VDDQ) node[tground](VDDQ1){}; + \node[anchor=south] at (VDDQ1) {$V_{DDQ}$}; + \draw (TL) to[R=$2R_{TT}$] (TL|-VSSQ) node[tlground]{}; + \draw (TL) -- ++(1.5,0) node[plain amp, anchor=in up, scale=0.6](recv){}; + \draw (recv.bin down) to[short=$V_{ref}$, -o] ++(-0.5,0); + \draw (recv.bout) to[short, -o] ++(0.5,0); + \end{circuitikz}% + } + \caption{Stub Series Terminated Logic (SSTL)} + \label{fig:term_sstl} + \end{subfigure} +% + \caption[DRAM Interface Termination Schemes]{DRAM Interface Termination Schemes\footnotemark} + \label{fig:term} +\end{figure*} +\footnotetext{The pull-up driver can be implemented with either PMOS or NMOS transistors.} +% +\textit{Pseudo open drain logic} (PODL) and \textit{low voltage swing terminated logic} (LVSTL) only use a pull-up or a pull-down resistor, respectively. +In contrast, \textit{stub series terminated logic} (SSTL) uses both a pull-up and a pull-down resistor. \todo{so the termination voltage level $V_{TT}$ is at $V_{DDQ}/2$.} +In all three cases, the termination resistance is matched the characteristic impedance of the transmission line, i.e., $R_{TT} \approx Z_0$ (remember that in AC analysis a DC voltage source is treated as a short).\todo{lossy transmission line} +To calculate the power, both logic levels are considered separately. +The transistor of the driver that is switched on is replaced with an equivalent resistor with resistance $R_{ON}$, while the transistor that is switched off is replaced with an open line. +As an example, Figure~\ref{fig:terminations} shows the two equivalent circuit diagrams for a PODL interface. +% +\begin{figure} + \centering + \begin{subfigure}[b]{0.49\linewidth} + \centering + \resizebox{\linewidth}{!}{% + \begin{circuitikz} + \ctikzset{bipoles/resistor/height=0.15} + \ctikzset{bipoles/resistor/width=0.4} + \draw (0,0) node[tground](VDDQ1){} to[R=$R_{ON}$] ++(0,-1.5) to[short=$"1"$] ++(3,0) to[R,a=$R_{TT}$] ++(0,1.5) node[tground](VDDQ2){}; + \node[anchor=south] at (VDDQ1) {$V_{DDQ}$}; + \node[anchor=south] at (VDDQ2) {$V_{DDQ}$}; + \end{circuitikz}} + \caption{Driving Logic "1"} + \label{fig:term_logic_1} + \end{subfigure} + % + \begin{subfigure}[b]{0.49\linewidth} + \centering + \resizebox{\linewidth}{!}{% + \begin{circuitikz} + \ctikzset{bipoles/resistor/height=0.15} + \ctikzset{bipoles/resistor/width=0.4} + \draw (0,0) node[tlground]{} to[R,a=$R_{ON}$] ++(0,1.5) to[short=$"0"$] ++(3,0) to[R,a=$R_{TT}$] ++(0,1.5) node[tground](VDDQ){}; + \node[anchor=south] at (VDDQ) {$V_{DDQ}$}; + \end{circuitikz}} + \caption{Driving Logic "0"} + \label{fig:term_logic_0} + \end{subfigure} + \caption{Equivalent Circuit Diagrams for PODL Termination Power\todo{top alignment}} + \label{fig:terminations} +\end{figure} +% +When driving a logic "1", both ends of the circuit are connected to $V_{DDQ}$, which means that no current is flowing and no power is dissipated, i.e., +\begin{equation} +P_{term,1}^{PODL} = 0. +\end{equation} +In contrast, when driving a logic "0", one side is connected to ground, while the other side is connected to $V_{DDQ}$. +The dissipated power is calculated as +\begin{equation} + P_{term,0}^{PODL} = \frac{V_{DDQ}^2}{R_{ON} + R_{TT}}. +\end{equation} +In the case of an LVSTL interface, the equations are reversed, i.e., +\begin{equation} +P_{term,0}^{LVSTL} = 0 +\end{equation} +and +\begin{equation} +P_{term,1}^{LVSTL} = \frac{V_{DDQ}^2}{R_{ON} + R_{TT}}. +\end{equation} +The SSTL interface uses both a pull-up and a pull-down resistor, therefore, power is dissipated at both logic levels. +It can be calculated as +\begin{equation} + P_{term,0}^{SSTL} = P_{term,1}^{SSTL} = \frac{V_{DDQ}^2}{(R_{ON}||2R_{TT})+2R_{TT}}. +\end{equation} +% +The average termination power for transmitting $n_0$ logic zeros and $n_1$ logic ones is +\begin{equation} + P_{term} = \frac{P_{term,0} \cdot n_0 + P_{term,1} \cdot n_1}{n_0 + n_1} +\end{equation} +%dissipated termination energy depends on the bit period $t_b$ (minimum time that signal is at one logic level) and the number of transmitted logic zeros $n_0$ and logic ones $n_1$. +%It is calculated as +%\begin{equation} +% E_{term} = (P_{term,0} \cdot n_0 + P_{term,1} \cdot n_1) \cdot t_b. +%\end{equation} +Because with PODL and LVSTL only one logic level consumes power, a data bus inversion mechanism can be implemented to reduce the power consumption. +With SSTL the termination power is independent of the transmitted data. + +When using channel configurations with multiple ranks or DIMMs, the interconnect network can change from a simple point-to-point topology to a more complex topology, e.g., because the non-target dies also terminate the bus. +In these cases, termination power can be calculated in the same way by determining the equivalent circuit diagrams for both logic levels. +% +%Figures show simplest networks consisting of driver with pull-up and pull-down on resistance $R_{ON}$, lossless transmission line with impedance $Z_0$ and termination resistance $R_{TT}$. +%$R_{TT}$ is chosen to match $Z_0$ and typically has a value of $50 \Omega$. +%For push pull termination, static termination power is consumed both when logic 1 and 0 is transmitted and it is calculated as +%\begin{equation} +% P_{term} = \frac{V_{DDQ}^2}{4 \cdot (R_{ON} + R_{TT})}. +%\end{equation} +%In contrast, for POD static termination power is only consumed when logic 0 is transmitted and for LVSTL static termination power is consumed when logic 1 is transmitted. +%This has the advantage that idle bus can be "parked" at either 0 or 1 and no static power is consumed. +%It is calculated as +%\begin{equation} +% P_{term} = \frac{V_{DDQ}^2}{R_{ON} + R_{TT}} +%\end{equation} +% +%Core power is fixed for specific device -> calculation based on currents specified in datasheets +%Interface power depends on Controller PHY, PCB, socket etc. -> calculation based on physical laws +%Since supply voltage of drivers is separated from supply voltage of core, calculation can be split up like this +%% kurz: was ist DRAM +%%% wie spielen verschiedene Standards da rein +%%% unterschiede in specs bei versch. herstellern / modellen +%%% instruktionen u. korrelation zu energie verbrauch +% +%\input{content/04_drampower} +% +\subsection{Dynamic Power} +% +As shown in the previous section, termination power is frequency independent because it is dissipated across a purely resistive network. +Termination power represents a lower bound for the total power consumption and also dominates at low operating frequencies. +However, since current generation DRAM standards support data rates of 10\,Gbps/pin and more, the impact of parasitic capacitances is much more significant. +Figure~\ref{fig:load_caps} shows the simple point-to-point connection with PODL termination scheme as already presented in Figure~\ref{fig:term_podl}, but with two added parasitic capacitances, one at the driver side and one at the receiver side. +% +\begin{figure} + \centering + \resizebox{\linewidth}{!}{% + \begin{circuitikz} + \ctikzset{bipoles/resistor/height=0.15} + \ctikzset{bipoles/resistor/width=0.4} + %\ctikzset{bipoles/tline/width=0.6} + \draw (0,0) node[pmos, emptycircle, anchor=D](P){}; + \draw (0,0) node[nmos, anchor=D](N){}; + \draw (P.S) -- ++(0,0) node[tground](VDDQ){}; + \node[anchor=south] at (VDDQ) {$V_{DDQ}$}; + \draw (N.S) -- ++(0,0) node[tlground](VSSQ){}; + \draw (P.G) -- (N.G); + \draw (P.south west) to[short, *-o] ++(-0.5,0); + \draw (P.D) to[short,*-*] ++(0.8,0) coordinate(D1) to[tline=$Z_0$, bipoles/tline/width=1, *-*] ++(3,0) coordinate(D3) to[short,-*] ++(0.8,0) coordinate(D4); + \draw (D4) to[R,a=$R_{TT}$] (D4|-VDDQ) node[tground](VDDQ1){}; + \node[anchor=south] at (VDDQ1) {$V_{DDQ}$}; + \draw (D4) -- ++(1.5,0) node[plain amp, anchor=in up, scale=0.6](recv){}; + \draw (recv.bin down) to[short=$V_{ref}$, -o] ++(-0.5,0); + \draw (recv.bout) to[short, -o] ++(0.5,0); + \draw (D1) to[C=$C_{TX}$] (D1|-VSSQ) node[tlground]{}; + \draw (D3) to[C,a=$C_{RX}$] (D3|-VSSQ) node[tlground]{}; + \end{circuitikz}} + \caption{Point-to-Point Connection with Parasitic Capacitances} + \label{fig:load_caps} +\end{figure} +% +We analyze the power dissipation of this circuit for different operating frequencies as input using SPICE. +The components are dimensioned as $R_{ON}$ = $R_{TT}$ = \SI{50}{\ohm}, $C_{TX}$ = $C_{RX}$ = \SI{1}{\pico\farad} and $V_{DDQ}$ = \SI{1}{\volt}, which is in the order of real DRAM interfaces. +For now, the transmission line is modeled as a short. +% +%\begin{figure} +% \centering +% \begin{tikzpicture} +% \begin{axis}[ +% xlabel={Operating Frequency [MHz]}, +% ylabel={Power Dissipation [mW]}, +% xmode=log, +% xmin=50, +% xmax=6400, +% xtick={50,100,200,400,800,1600,3200,6400}, +% xticklabels={50,100,200,400,800,1600,3200,6400} +% ] +% \addplot coordinates {(50,5.02) (100,5.05) (200,5.11) (400,5.22) (800,5.42) (1600,5.8) (3200,6.46) (6400,7.09)}; +% \end{axis} +% \end{tikzpicture} +% \caption{Caption} +% \label{fig:enter-label} +%\end{figure} +% +At frequencies below \SI{100}{\mega\hertz}, the dissipated power is approximately \SI{5}{\milli\watt}, which corresponds to the termination power of the circuit. +However with increasing frequencies, the power also increases because the capacitors start to conduct. +At \SI{3200}{\mega\hertz} (i.e., 6.4\,Gbps/pin at DDR), the dissipated power is already \SI{6.5}{\milli\watt}, i.e., \SI{30}{\percent} higher than the pure termination power. +To calculate the power dissipation analytically, the clock signal with frequency $f$ and voltage swing $V_{DDQ}$ can be expressed as a Fourier series +\begin{equation} + v(t) = \frac{V_{DDQ}}{2} + \Re \left\{\frac{-2j \cdot V_{DDQ}}{\pi} \sum_{k=1,3,5,\dots}^{\infty} \frac{1}{k} \exp(j 2 \pi f k t)\right\}. +\end{equation} +with DC component $\frac{V_{DDQ}}{2}$. +% +The complex amplitudes $\underline{\hat{V}}_k$ of the frequency components can be directly determined from this equation as +\begin{equation} + \underline{\hat{V}}_k = \frac{-2j \cdot V_{DDQ}}{\pi} \cdot \frac{1}{k}. +\end{equation} +With the frequency-dependent complex impedances $\underline{Z}_k$ calculated as +\begin{equation} + \underline{Z}_k = R_{ON} + \frac{1}{j 2 \pi f k (C_{TX} + C_{RX}) + \frac{1}{R_{TT}}}, +\end{equation} +the DC resistance $R_{DC}$ calculated as +\begin{equation} + R_{DC} = R_{ON} + R_{TT}, +\end{equation} +and the voltage across $R_{DC}$ calculated as +\begin{equation} + V_{DC} = V_{DDQ} - \frac{V_{DDQ}}{2} = \frac{V_{DDQ}}{2}, +\end{equation} +the total power dissipation $P_{total}$ can be calculated as +\begin{equation}\label{eq:fourier} + P_{total} = \frac{V_{DC}^2}{R_{DC}} + \sum_{k=1,3,5,\dots}^{\infty} \frac{|\underline{\hat{V}}_k|^2}{2} \cdot \Re \left\{\frac{1}{\underline{Z}_k}\right\}. +\end{equation} +% +In reality, the series needs to be terminated at a certain $k$, which can be chosen to match the finite slew rate of the signal. +For LVSTL the same equations can be applied, while for SSTL the calculation of the DC component needs to be adapted. +The dynamic power $P_{dyn}$, which adds to the termination power due to the toggling between both logic levels, is finally calculated as +\begin{equation} + P_{dyn} = P_{total} - P_{term}. +\end{equation} +One alternative formula, which is often used to calculate the dynamic power~\cite{joukah_12,joukah_15}, is +\begin{equation}\label{eq:approx} + P_{dyn} = \left(\sum_i C_i V_{sw,i}\right) \frac{V_{DDQ} \cdot f}{2} +\end{equation} +where $C_i$ are the capacitances along the channel and $V_{sw,i}$ the respective voltage swings at each capacitance. +The voltage swings are usually determined using a DC analysis for both logic levels. +While this approximation provides accurate results at low operating frequencies, current generation DRAM interfaces do not reach full swing anymore due to the large parasitic capacitances in combination with high operating frequencies. +Figure~\ref{fig:power_comp} shows the total power dissipation at different operating frequencies calculated with SPICE, Equation~\ref{eq:fourier} and Equation~\ref{eq:approx}. +% +\begin{figure} + \centering + \begin{tikzpicture} + \begin{axis}[ + xlabel={Operating Frequency [MHz]}, + ylabel={Power Dissipation [mW]}, + xmode=log, + xmin=50, + xmax=12800, + xtick={100,200,400,800,1600,3200,6400}, + xticklabels={100,200,400,800,1600,3200,6400}, + ybar, + bar width=2mm, + legend pos=north west + ] + \addplot+ coordinates {(100,5.05) (200,5.1) (400,5.2) (800,5.4) (1600,5.8) (3200,6.47) (6400,7.09)}; + \addplot+ coordinates {(100,5.05) (200,5.1) (400,5.2) (800,5.4) (1600,5.8) (3200,6.47) (6400,7.09)}; + \addplot+ coordinates {(100,5.05) (200,5.1) (400,5.2) (800,5.4) (1600,5.8) (3200,6.6) (6400,8.2)}; + \legend{SPICE, Fourier Series, Approximation} + \end{axis} + \end{tikzpicture} + \caption{Comparison of Different Calculation Methods for Power Dissipation} + \label{fig:power_comp} +\end{figure} +% +While Equation~\ref{eq:fourier} always provides the same results as SPICE, Equation~\ref{eq:approx} is accurate at low frequencies, but overestimates the power dissipation at higher frequencies, e.g., by \SI{16}{\percent} at \SI{6400}{\mega\hertz}. +If the capacitances $C_{TX}$ and $C_{RX}$ are increased from \SI{1}{\pico\farad} to \SI{2}{\pico\farad}, the error at \SI{6400}{\mega\hertz} is as high as \SI{54}{\percent}. + +The impact of the transmission line can be handled in different ways. +In \cite{holsta_19}, the authors have analyzed various physical DRAM interfaces, i.e., multi DIMM, package on package, PCB trace and silicon interposer. +They show that the channels have very distinct insertion loss characteristics, which need to be taken into consideration for an accurate power estimation. +A linear loss characteristic can be approximated with matching capacitances, while more complex loss characteristics can be approximated with frequency-dependent resistance values in the Fourier series based calculation. + +Up until now, the formulas for dynamic power consumption assume a switching activity of $\alpha = 1$, i.e., the signals transition from logic zero to logic one once every period. +While this is true for clock and data strobe signals, the command/address bus and data bus usually experience lower switching activities. +Especially when the bus is only operated at SDR, the switching activity is limited to $\alpha_{max} = 0.5$. +The problem is that the switching activity $\alpha$ and number of transmitted zeros $n_0$ and ones $n_1$ alone do not determine the complete signal behavior, which is demonstrated in Figure~\ref{fig:switching_signals}. +% +\begin{figure} + \centering + \resizebox{\linewidth}{!}{% + \input{img/switching_signals} + } + \caption{Two Different Signals with Identical $\alpha$, $n_0$ and $n_1$} + \label{fig:switching_signals} +\end{figure} +% +Both S1 and S2 have a switching activity of $\alpha = 0.5$ and the number of transmitted zeros and ones is $n_0 = n_1 = 8$. +However, S1 operates at half the clock frequency for the whole time, while S2 operates at the full clock frequency in the beginning and only one fifth of the clock frequency in the end. +When the dissipated power is calculated section by section using Equation~\ref{eq:fourier}, the results for S1 and S2 differ because different voltage swings are reached in each section. +In the corner cases, a signal with switching activity $\alpha$ can be either modeled with a constant switching activity or with a maximum switching activity $\alpha_{max}$ for one part of the time and a switching activity of 0 for the other part of the time. +The actual dynamic power consumption lies between these two corner cases and is in the rest of the paper approximated by the mean value +\begin{equation} + \overline{P}_{dyn}(\alpha) = \frac{P_{dyn}(f=\alpha \cdot f_{max}) + \frac{\alpha}{\alpha_{max}} \cdot P_{dyn}(f = \alpha_{max} \cdot f_{max})}{2}. +\end{equation} +% +Finally, the switching activity $\alpha$ can be determined by counting the number of zero to one transitions $n_{0 \rightarrow 1}$ in a given time interval $\tau$ as +\begin{equation} + \alpha = \frac{n_{0 \rightarrow 1}}{\tau \cdot f_{max}}. +\end{equation} + +\todo{data dependent interface power calc, we count n0, n1 and toggles for CMD/ADDR and data bus} + +% +% +%the assumption was that full toggle rate/ switching activity, only the case for clock signal +%-> calculate energy for one toggle, count toggles, figure for full toggle no toggle vs half toggle whole time +% +%While these equations work for a clock signal +% +%only depends on resistances independent of the frequency, +% +% +% +%To calculate the dynamic power, all parasitic capacitances and transmission lines along the DRAM channel need to be considered. +%The simplest case is a point-to-point connection between the memory controller and a single DRAM device. +%Figure~\ref{fig:load_caps} shows the equivalent circuit diagram for this case, assuming low voltage swing terminated logic. +%On the driver side, all parasitic capacitances (on-chip pad and IC package) are combined into the driver load capacitance $C_{TX}$, while on the receiver side, all parasitic capacitances are combined into the receiver load capacitance $C_{RX}$. +% +% +% +% +%Load capacitances are charged and discharged, power is dissipated in driver, dynamic power, only when switching happens. +%Simple case without multiple ranks: Effective line capacitance of channel $C_{line}$ and pad + package both on driver and receiver side ($C_{TX}$ and $C_{RX}$) +% +% +% +% +% +%CACTI-IO: Several capacitances: +%$C_{int}$: Internal IO loading (loading within the IO, due to predriver nets), full swing +%$C_{tx}$: IO TX self-load including package (loading at the CPU TX pin), lower swing +%$C_{data}$: Device loading per memory data pin (DRAM device load for DQ per die) +%$C_{addr}$: Device loading per memory address pin (DRAM device load for CA per die) +%!!!different capacitances for different package types!!! +%If the signal rise time $t_r$ is less than or comparable to the transmission line flight time $t_f$, transmission line behavior becomes significant. Rule of thumb: $t_r < 2.5 t_f$ +%Up to 1GHz transmission lines can be considered lossless +%Transmission line with impedance $Z_0$ can be expressed by effective line capacitance $C_{line}$, which depends on flight time: +%\begin{equation} +% C_{line} = \frac{t_f}{Z_0} +%\end{equation} +%If half bit period $\frac{t_b}{2}$ is less than flight time $t_f$, $C_{line}$ depends on $t_b$: +%\begin{equation} +% C_{line} = \frac{t_b}{Z_0} = \frac{1}{2f Z_0} +%\end{equation} +% +%intrinsic capacitance of driver with full swing VDDQ, capacitance of pad, +%Interconnect Power: +%Interconnect acts as lossless? transmission line, has characteristic impedance, dynamic power dissipated in driver when switching happens +%Termination Power: +%Far-end termination, static power depending on signal value and termination type, power is dissipated in driver (Ron), target termination resistor (and non-target termination resistor) +%\begin{equation} +% P_{dyn} = N_{pins} D_c \alpha \left(\sum_i C_i V_{sw,i}\right) V_{DDQ} f +%\end{equation} +%Voltage swing is usually less than VDD, duty cycle should be 1 because charging process takes the complete period at high frequencies -> driven signal looks like rectangle +% +%\todo{Lossless transmission line up to 1 GHz} +%\todo{Gewichtung von average Swing mit alpha} +% +%This power is associated with the transfer of commands from the memory controller to the DRAM devices and transferring data in and out of the DRAM. +%Components: +%I/O buffers: These circuits drive the data onto the external data bus when the DRAM reads or receives data from the bus during a write. +%Data and command/address bus activity: Every time data is transferred to or from the DRAM, the I/O circuitry consumes power. This includes driving the clock signals, data lines (DQ), address lines, and control signals. +%Key Characteristics: +%Dependent on the activity of the external data bus, i.e., how frequently data is transferred to and from the DRAM. +%Scales with data rate: Higher data rates (e.g., DDR4, DDR5) increase interface power due to more frequent toggling of the I/O signals. +%Often includes power consumed by termination resistances, which are used to improve signal integrity on the high-speed bus. +%While interface power is generally lower than core power, it can become significant at high memory speeds, especially in modern DRAM technologies like DDR4 and DDR5. +%% +%In contrast to core power, interface characteristics are mainly specified in standard (caps, resistors, termination, driving strength, voltage etc.) +%Depending on interface topology, power can vary greatly. Although standard also defines currents that are drawn over interface supply voltage (typically VDDQ), these currents only describe one specific test setup. +%Data that is transmitted has fixed patterns. +%In addition, power consumption of memory controller PHY is not considered, also contributes to power consumption of DRAM subsystem. +%Thus, we calculate interface power based on physical equations. +%% +%DRAM interface connections: differential clock signal ->, command/address bus ->, data bus <->, data strobe <-> +%Depending on standard, there are more/different signals +%% +%While the core power is fixed for a specific device and characterized in the datasheet with different operating currents, the interface power not only depends on the device itself, but also on the physical interface (PHY) of the memory controller, the interconnect channel (PCB, TSV etc.) and other chips connected to the same channel (multi-rank configurations). +%Thus, the currents specified in the datasheet for the I/O driver supply voltage VDDQ cannot be used for accurate estimations. +%Instead, the I/O power calculation is based on physical equations to model transmission lines as shown in \cite{joukah_15,joukah_12}. +%Interface power depends on package type (TSV, POP, device soldered on PCB, DIMM: UDIMM, RDIMM, LRDIMM...), ranks etc. +% +% +% +\section{Simulator Overview} +% +\todo{ranks} +\todo{count 1, 0 and 0->1 based on issued commands and data, alternatively use average values} +\todo{count commands and clock cycles in each state for background power} + +The simulation kernel of DRAM Power uses a timestep based systems, to create a cycle accurate depiction of memory accesses. Different DRAM Standards are modeled as different classes inside the source code, to more accurately depict differences in DRAM behaviour. + + +The kernel takes as input a Memory Specification (MemSpec) file and a command list. MemSpecs are a machine readable representation of a DRAM's spec sheet formatted as JSON. The command list contains traces of DRAM commands sent to the DRAM controller with corresponding timestamps, which will be processed during simulations. The command list can either be created manually or supplied in form of an input file, or from external tools directly, like simulation traces from DRAMSys. + +The simulation starts at timestamp t = 0 and iteratively processes each single command from the command list. Certain commands can issue following commands at a delayed cycle relative to their own execution. [braucht beispiel] Those deferred commands are referred as implicit commands inside DRAMPower and are inserted back into a command queue with a given timestamp. During every simulation step, the kernel checks if the command queue has pending implicit commands and executes them according to their timestamp. + + +DRAM Standards inside DRAMPower are programmatically modelled as classes. Since only a handful of behaviors are shared between DRAM Standards, each standard warrants its own implementation inside DRAMPower. Every implemented DRAM Standards inherits from a common base class, which handles all interaction with the kernel. The kernel dispatches commands to the instanced DRAM class, which then routes them through it's own function table, where commands are associated with implemented functions inside the DRAM class. + + +DRAMPower is also able to calculate interface power consumption. This is being achieved by simulating a bit accurate depiction of the command and data busses of a DRAM device. Each command of a given DRAM standard has a specified bit pattern, which is used by the controller to distinguish between commands. During execution the bits on the command bus constantly change, since the data bus is being overwritten with every incoming new command. This means, that the bits on the command bus can flip between cycles, thus leading to increases in power consumption. The same effect applies to the data bus as well, which is used to handle read and write commands. + + + + + + + + + + + + + + +% +\subsection{Simulation Kernel} +% +Windowing: Power can be evaluated during running simulation -> power over time is possible +Handling implicit commands: +Examples: Power Down Entry is not done when command is issued, but might be delayed +RDA/WRA: auto-precharge is done after RD/WR is internally completed or only after tRAS is expired +when command is issued, implicit command (lambda) is inserted into deque of implicit commands that is ordered by timestamp +before we execute a new command or we request the window stats, we check if there are still outstanding requests in the implicit command queue with a timestamp smaller or equal to the current time +% +DRAMPower does not use an event-driven simulation kernel, but it is only triggered externally when new commands are issued or when the total energy up to a certain point/the current time is requested. +However, there is the case that a command that is issued at time $t$ only triggers an internal action/operation at time $t+x$. +Thus, DRAMPower internally uses a queue that consists of a pair of a timestamp and a lambda expression. +When a command is issued that triggers an action in the future, a lambda expression with the respective timestamp is inserted in the queue. +Whenever a new command is issued or the total energy is requested, it is first checked whether there are entries in the queue with a timestamp less or equal to the current timestamp. +These lambdas are then first evaluated. +% +\begin{figure} + \centering + \resizebox{\linewidth}{!}{% + \input{img/implicit_commands} + } + \caption{Example for Implicit Command} + \label{fig:implicit_commands} +\end{figure} +% +\subsection{Interface Power Calculation} +%% +Physical equations from section ..., +power depends on command, address and data because the number of transmitted 0/1/toggles changes +termination power -> number of transmitted 0 and 1, efficiently calculated using population count (POPCNT) command +\subsection{Simulation Speed} +\todo{Marco: Vielleicht kannst du hier ein paar Zahlen zur Simulationsgeschwindigkeit nennen, erstens bzgl. POPCNT und vielleicht auch zweitens im Vergleich zu DRAMSys, damit man sieht, dass die Simulationszeit von DRAMPower eigentlich nicht ins Gewicht fällt.} +dynamic power -> number of 0-1 toggles, calculated as (not p and q) +alternatively, duty cycle/toggling rates can be used + (drampower lässt sich unterteilen in zwei aspekte: statisch und dynamisch) +%% statisch: wie sind die versch. standards implementiert +%%% standard -> instruction set +%%% mapping von bitcode auf instruction ( 011010101 -> REF ) +%%% mapping instruction auf function ( REF -> DDR5::handle_ref() ) +%%% formeln zur strom berechnung + +%% dynamisch: ausführung von simulation +%%% liste von instructions -> timestamp basierte simulation +%%% implizite commands +%%% sammeln von countern, berechnung, ausgabe von stromverbrauch +% Interface +% PARC + + + +%\subsection{Modeling New Refresh Commands} +%% +%banks in refresh are considered active during refresh, device is in active mode (I\_rho + ...) +%all-bank refresh: IDD5B - IDD3N +%% +%\subsection{Core Power} +%% +%new refresh commands without specified burst refresh current, only average refresh current +%% + +%\input{content/05_exp_results} +\subsection{Simulation Accuracy} +\todo{Marco, Derek} +% IDD Patterns mit Daimler Messung vergleichen +% LP4 vs LP5 +% DDR4 vs. DDR5 +% Vgl. DRAMPower3/4 und Vampire ggf. Messungen + + +% Concluison: +\section{Conclusion and Future Work} +New standards, PAM4 (GDDR6X) or PAM3 (GDDR7) instead of NRZ -> more complex interface calculation +%% mehr Standards in DRAMPower + +%% drampower kann dies und das + +%\section*{Acknowledgements} +%DI-DERAMSys %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Footer diff --git a/drampower-settings.tex b/drampower-settings.tex index 43cea19..9afe963 100644 --- a/drampower-settings.tex +++ b/drampower-settings.tex @@ -28,3 +28,5 @@ %\received{20 February 2007} %\received[revised]{12 March 2009} %\received[accepted]{5 June 2009} + +\newcommand{\todo}[1]{\textcolor{\red}{#1}} diff --git a/drampower.bib b/drampower.bib index 19460d8..6696dba 100644 --- a/drampower.bib +++ b/drampower.bib @@ -1,1650 +1,144 @@ - -% Journals - -% First the Full Name is given, then the abbreviation used in the AMS Math -% Reviews, with an indication if it could not be found there. -% Note the 2nd overwrites the 1st, so swap them if you want the full name. - - %{AMS} - @String{AMSTrans = "American Mathematical Society Translations" } - @String{AMSTrans = "Amer. Math. Soc. Transl." } - @String{BullAMS = "Bulletin of the American Mathematical Society" } - @String{BullAMS = "Bull. Amer. Math. Soc." } - @String{ProcAMS = "Proceedings of the American Mathematical Society" } - @String{ProcAMS = "Proc. Amer. Math. Soc." } - @String{TransAMS = "Transactions of the American Mathematical Society" } - @String{TransAMS = "Trans. Amer. Math. Soc." } - - %ACM - @String{CACM = "Communications of the {ACM}" } - @String{CACM = "Commun. {ACM}" } - @String{CompServ = "Comput. Surveys" } - @String{JACM = "J. ACM" } - @String{ACMMathSoft = "{ACM} Transactions on Mathematical Software" } - @String{ACMMathSoft = "{ACM} Trans. Math. Software" } - @String{SIGNUM = "{ACM} {SIGNUM} Newsletter" } - @String{SIGNUM = "{ACM} {SIGNUM} Newslett." } - - @String{AmerSocio = "American Journal of Sociology" } - @String{AmerStatAssoc = "Journal of the American Statistical Association" } - @String{AmerStatAssoc = "J. Amer. Statist. Assoc." } - @String{ApplMathComp = "Applied Mathematics and Computation" } - @String{ApplMathComp = "Appl. Math. Comput." } - @String{AmerMathMonthly = "American Mathematical Monthly" } - @String{AmerMathMonthly = "Amer. Math. Monthly" } - @String{BIT = "{BIT}" } - @String{BritStatPsych = "British Journal of Mathematical and Statistical - Psychology" } - @String{BritStatPsych = "Brit. J. Math. Statist. Psych." } - @String{CanMathBull = "Canadian Mathematical Bulletin" } - @String{CanMathBull = "Canad. Math. Bull." } - @String{CompApplMath = "Journal of Computational and Applied Mathematics" } - @String{CompApplMath = "J. Comput. Appl. Math." } - @String{CompPhys = "Journal of Computational Physics" } - @String{CompPhys = "J. Comput. Phys." } - @String{CompStruct = "Computers and Structures" } - @String{CompStruct = "Comput. \& Structures" } - @String{CompJour = "The Computer Journal" } - @String{CompJour = "Comput. J." } - @String{CompSysSci = "Journal of Computer and System Sciences" } - @String{CompSysSci = "J. Comput. System Sci." } - @String{Computing = "Computing" } - @String{ContempMath = "Contemporary Mathematics" } - @String{ContempMath = "Contemp. Math." } - @String{Crelle = "Crelle's Journal" } - @String{GiornaleMath = "Giornale di Mathematiche" } - @String{GiornaleMath = "Giorn. Mat." } % didn't find in AMS MR., ibid. - - %IEEE - @String{Computer = "{IEEE} Computer" } - @String{IEEETransComp = "{IEEE} Transactions on Computers" } - @String{IEEETransComp = "{IEEE} Trans. Comput." } - @String{IEEETransAC = "{IEEE} Transactions on Automatic Control" } - @String{IEEETransAC = "{IEEE} Trans. Automat. Control" } - @String{IEEESpec = "{IEEE} Spectrum" } % didn't find in AMS MR - @String{ProcIEEE = "Proceedings of the {IEEE}" } - @String{ProcIEEE = "Proc. {IEEE}" } % didn't find in AMS MR - @String{IEEETransAeroElec = "{IEEE} Transactions on Aerospace and Electronic - Systems" } - @String{IEEETransAeroElec = "{IEEE} Trans. Aerospace Electron. Systems" } - - @String{IMANumerAna = "{IMA} Journal of Numerical Analysis" } - @String{IMANumerAna = "{IMA} J. Numer. Anal." } - @String{InfProcLet = "Information Processing Letters" } - @String{InfProcLet = "Inform. Process. Lett." } - @String{InstMathApp = "Journal of the Institute of Mathematics and - its Applications" } - @String{InstMathApp = "J. Inst. Math. Appl." } - @String{IntControl = "International Journal of Control" } - @String{IntControl = "Internat. J. Control" } - @String{IntNumerEng = "International Journal for Numerical Methods in - Engineering" } - @String{IntNumerEng = "Internat. J. Numer. Methods Engrg." } - @String{IntSuper = "International Journal of Supercomputing Applications" } - @String{IntSuper = "Internat. J. Supercomputing Applic." } % didn't find -%% in AMS MR - @String{Kibernetika = "Kibernetika" } - @String{JResNatBurStand = "Journal of Research of the National Bureau - of Standards" } - @String{JResNatBurStand = "J. Res. Nat. Bur. Standards" } - @String{LinAlgApp = "Linear Algebra and its Applications" } - @String{LinAlgApp = "Linear Algebra Appl." } - @String{MathAnaAppl = "Journal of Mathematical Analysis and Applications" } - @String{MathAnaAppl = "J. Math. Anal. Appl." } - @String{MathAnnalen = "Mathematische Annalen" } - @String{MathAnnalen = "Math. Ann." } - @String{MathPhys = "Journal of Mathematical Physics" } - @String{MathPhys = "J. Math. Phys." } - @String{MathComp = "Mathematics of Computation" } - @String{MathComp = "Math. Comp." } - @String{MathScand = "Mathematica Scandinavica" } - @String{MathScand = "Math. Scand." } - @String{TablesAidsComp = "Mathematical Tables and Other Aids to Computation" } - @String{TablesAidsComp = "Math. Tables Aids Comput." } - @String{NumerMath = "Numerische Mathematik" } - @String{NumerMath = "Numer. Math." } - @String{PacificMath = "Pacific Journal of Mathematics" } - @String{PacificMath = "Pacific J. Math." } - @String{ParDistComp = "Journal of Parallel and Distributed Computing" } - @String{ParDistComp = "J. Parallel and Distrib. Comput." } % didn't find -%% in AMS MR - @String{ParComputing = "Parallel Computing" } - @String{ParComputing = "Parallel Comput." } - @String{PhilMag = "Philosophical Magazine" } - @String{PhilMag = "Philos. Mag." } - @String{ProcNAS = "Proceedings of the National Academy of Sciences - of the USA" } - @String{ProcNAS = "Proc. Nat. Acad. Sci. U. S. A." } - @String{Psychometrika = "Psychometrika" } - @String{QuartMath = "Quarterly Journal of Mathematics, Oxford, Series (2)" } - @String{QuartMath = "Quart. J. Math. Oxford Ser. (2)" } - @String{QuartApplMath = "Quarterly of Applied Mathematics" } - @String{QuartApplMath = "Quart. Appl. Math." } - @String{RevueInstStat = "Review of the International Statisical Institute" } - @String{RevueInstStat = "Rev. Inst. Internat. Statist." } - - %SIAM - @String{JSIAM = "Journal of the Society for Industrial and Applied - Mathematics" } - @String{JSIAM = "J. Soc. Indust. Appl. Math." } - @String{JSIAMB = "Journal of the Society for Industrial and Applied - Mathematics, Series B, Numerical Analysis" } - @String{JSIAMB = "J. Soc. Indust. Appl. Math. Ser. B Numer. Anal." } - @String{SIAMAlgMeth = "{SIAM} Journal on Algebraic and Discrete Methods" } - @String{SIAMAlgMeth = "{SIAM} J. Algebraic Discrete Methods" } - @String{SIAMAppMath = "{SIAM} Journal on Applied Mathematics" } - @String{SIAMAppMath = "{SIAM} J. Appl. Math." } - @String{SIAMComp = "{SIAM} Journal on Computing" } - @String{SIAMComp = "{SIAM} J. Comput." } - @String{SIAMMatrix = "{SIAM} Journal on Matrix Analysis and Applications" } - @String{SIAMMatrix = "{SIAM} J. Matrix Anal. Appl." } - @String{SIAMNumAnal = "{SIAM} Journal on Numerical Analysis" } - @String{SIAMNumAnal = "{SIAM} J. Numer. Anal." } - @String{SIAMReview = "{SIAM} Review" } - @String{SIAMReview = "{SIAM} Rev." } - @String{SIAMSciStat = "{SIAM} Journal on Scientific and Statistical - Computing" } - @String{SIAMSciStat = "{SIAM} J. Sci. Statist. Comput." } - - @String{SoftPracExp = "Software Practice and Experience" } - @String{SoftPracExp = "Software Prac. Experience" } % didn't find in AMS MR - @String{StatScience = "Statistical Science" } - @String{StatScience = "Statist. Sci." } - @String{Techno = "Technometrics" } - @String{USSRCompMathPhys = "{USSR} Computational Mathematics and Mathematical - Physics" } - @String{USSRCompMathPhys = "{U. S. S. R.} Comput. Math. and Math. Phys." } - @String{VLSICompSys = "Journal of {VLSI} and Computer Systems" } - @String{VLSICompSys = "J. {VLSI} Comput. Syst." } - @String{ZAngewMathMech = "Zeitschrift fur Angewandte Mathematik und - Mechanik" } - @String{ZAngewMathMech = "Z. Angew. Math. Mech." } - @String{ZAngewMathPhys = "Zeitschrift fur Angewandte Mathematik und Physik" } - @String{ZAngewMathPhys = "Z. Angew. Math. Phys." } - -% Publishers % ================================================= | - - @String{Academic = "Academic Press" } - @String{ACMPress = "{ACM} Press" } - @String{AdamHilger = "Adam Hilger" } - @String{AddisonWesley = "Addison-Wesley" } - @String{AllynBacon = "Allyn and Bacon" } - @String{AMS = "American Mathematical Society" } - @String{Birkhauser = "Birkha{\"u}ser" } - @String{CambridgePress = "Cambridge University Press" } - @String{Chelsea = "Chelsea" } - @String{ClaredonPress = "Claredon Press" } - @String{DoverPub = "Dover Publications" } - @String{Eyolles = "Eyolles" } - @String{HoltRinehartWinston = "Holt, Rinehart and Winston" } - @String{Interscience = "Interscience" } - @String{JohnsHopkinsPress = "The Johns Hopkins University Press" } - @String{JohnWileySons = "John Wiley and Sons" } - @String{Macmillan = "Macmillan" } - @String{MathWorks = "The Math Works Inc." } - @String{McGrawHill = "McGraw-Hill" } - @String{NatBurStd = "National Bureau of Standards" } - @String{NorthHolland = "North-Holland" } - @String{OxfordPress = "Oxford University Press" } %address Oxford or London? - @String{PergamonPress = "Pergamon Press" } - @String{PlenumPress = "Plenum Press" } - @String{PrenticeHall = "Prentice-Hall" } - @String{SIAMPub = "{SIAM} Publications" } - @String{Springer = "Springer-Verlag" } - @String{TexasPress = "University of Texas Press" } - @String{VanNostrand = "Van Nostrand" } - @String{WHFreeman = "W. H. Freeman and Co." } - -%Entries - -@Article{Abril07, - author = "Patricia S. Abril and Robert Plant", - title = "The patent holder's dilemma: Buy, sell, or troll?", - journal = "Communications of the ACM", - volume = "50", - number = "1", - month = jan, - year = "2007", - pages = "36--44", - doi = "10.1145/1188913.1188915", - url = "http://doi.acm.org/10.1145/1219092.1219093", - note = "", -} - -@Article{Cohen07, - author = "Sarah Cohen and Werner Nutt and Yehoshua Sagic", - title = "Deciding equivalances among conjunctive aggregate queries", - journal = JACM, - articleno = 5, - numpages = 50, - volume = 54, - number = 2, - month = apr, - year = 2007, - doi = "10.1145/1219092.1219093", - url = "http://doi.acm.org/10.1145/1219092.1219093", - acmid = 1219093, -} - - -@periodical{JCohen96, - key = "Cohen", - editor = "Jacques Cohen", - title = "Special issue: Digital Libraries", - journal = CACM, - volume = "39", - number = "11", - month = nov, - year = "1996", -} - - -@Book{Kosiur01, - author = "David Kosiur", - title = "Understanding Policy-Based Networking", - publisher = "Wiley", - year = "2001", - address = "New York, NY", - edition = "2nd.", - editor = "", - volume = "", - number = "", - series = "", - month = "", - note = "", -} - - -@Book{Harel79, - author = "David Harel", - year = "1979", - title = "First-Order Dynamic Logic", - series = "Lecture Notes in Computer Science", - volume = "68", - address = "New York, NY", - publisher = "Springer-Verlag", - doi = "10.1007/3-540-09237-4", - url = "http://dx.doi.org/10.1007/3-540-09237-4", - editor = "", - number = "", - month = "", - note = "", -} - - -@Inbook{Editor00, - author = "", - editor = "Ian Editor", - title = "The title of book one", - subtitle = "The book subtitle", - series = "The name of the series one", - year = "2007", - volume = "9", - address = "Chicago", - edition = "1st.", - publisher = "University of Chicago Press", - doi = "10.1007/3-540-09237-4", - url = "http://dx.doi.org/10.1007/3-540-09456-9", - chapter = "", - pages = "", - number = "", - type = "", - month = "", - note = "", -} - -% -@InBook{Editor00a, - author = "", - editor = "Ian Editor", - title = "The title of book two", - subtitle = "The book subtitle", - series = "The name of the series two", - year = "2008", - address = "Chicago", - edition = "2nd.", - publisher = "University of Chicago Press", - doi = "10.1007/3-540-09237-4", - url = "http://dx.doi.org/10.1007/3-540-09456-9", - volume = "", - chapter = "100", - pages = "", - number = "", - type = "", - month = "", - note = "", -} - - -% incollection (has an editor, title, and possibly a booktitle) -@Incollection{Spector90, - author = "Asad Z. Spector", - title = "Achieving application requirements", - booktitle = "Distributed Systems", - publisher = "ACM Press", - address = "New York, NY", - year = "1990", - edition = "2nd.", - chapter = "", - editor = "Sape Mullender", - pages = "19--33", - doi = "10.1145/90417.90738", - url = "http://doi.acm.org/10.1145/90417.90738", - volume = "", - number = "", - series = "", - type = "", - month = "", - note = "", -} - - -% incollection (has an editor, title, and possibly a booktitle) -@Incollection{Douglass98, - author = "Bruce P. Douglass and David Harel and Mark B. Trakhtenbrot", - title = "Statecarts in use: structured analysis and object-orientation", - series = "Lecture Notes in Computer Science", - booktitle = "Lectures on Embedded Systems", - publisher = "Springer-Verlag", - address = "London", - volume = "1494", - year = "1998", - chapter = "", - editor = "Grzegorz Rozenberg and Frits W. Vaandrager", - pages = "368--394", - doi = "10.1007/3-540-65193-4_29", - url = "http://dx.doi.org/10.1007/3-540-65193-4_29", - edition = "", - number = "", - type = "", - month = "", - note = "", -} - - -@Book{Knuth97, - author = "Donald E. Knuth", - title = "The Art of Computer Programming, Vol. 1: Fundamental Algorithms (3rd. ed.)", - publisher = "Addison Wesley Longman Publishing Co., Inc.", - year = "1997", - address = "", - edition = "", - editor = "", - volume = "", - number = "", - series = "", - month = "", - note = "", -} - - -@Book{Knuth98, - author = "Donald E. Knuth", - year = "1998", - title = "The Art of Computer Programming", - series = "Fundamental Algorithms", - volume = "1", - edition = "3rd", - address = "", - publisher = "Addison Wesley Longman Publishing Co., Inc.", - doi = "", - url = "", - editor = "", - number = "", - month = "", - note = "(book)", -} - -%Inbook{Knuth97, -% author = "Donald E. Knuth", -% title = "The Art of Computer Programming", -% booktitle = "the booktitle", -% edition = "3", -% volume = "1", -% year = "1997", -% publisher = "Addison Wesley Longman Publishing Co., Inc.", -% editor = "", -% number = "", -% series = "Fundamental Algorithms", -% type = "", -% chapter = "", -% pages = "", -% address = "", -% month = "", -% note = "(inbook)", -%} - -%INBOOK{DK:73-inbook-full, -% author = "Donald E. Knuth", -% title = "Fundamental Algorithms (inbook w series)", -% volume = 1, -% series = "The Art of Computer Programming", -% publisher = "Addison-Wesley", -% address = "Reading, Massachusetts", -% edition = "Second", -% month = "10~" # jan, -% year = "1973", -% type = "Section", -% chapter = "1.2", -% pages = "10--119", -% note = "Full INBOOK entry (w series)", -%} - -%INcollection{DK:74-incoll, -% author = "Donald E. Knuth", -% title = "Fundamental Algorithms (incoll)", -% volume = 1, -% booktitle = "The Art of Computer Programming", -% publisher = "Addison-Wesley", -% address = "Reading, Massachusetts", -% month = "10~" # jan, -% year = "1974", -% pages = "10--119", -% editor = "Bernard Rous", -% note = "This is a full incoll entry with an editor", -%} - -%INcollection{DK:75-incollws, -% author = "Donald E. Knuth", -% title = "Fundamental Algorithms (incoll w series)", -% volume = 1, -% booktitle = "The Art of Computer Programming", -% series = "The Art of Computer Programming", -% publisher = "Addison-Wesley", -% address = "Reading, Massachusetts", -% month = "10~" # jan, -% year = "1975", -% pages = "10--119", -% editor = "Bernard Rous", -% note = "This is a full incoll entry with an editor and series", -%} - - -@incollection{GM05, -Author= "Dan Geiger and Christopher Meek", -Title= "Structured Variational Inference Procedures and their Realizations (as incol)", -Year= 2005, -Booktitle="Proceedings of Tenth International Workshop on Artificial Intelligence and Statistics, {\rm The Barbados}", -Publisher="The Society for Artificial Intelligence and Statistics", -Month= jan, -Editors= "Z. Ghahramani and R. Cowell" -} - -@Inproceedings{Smith10, - author = "Stan W. Smith", - title = "An experiment in bibliographic mark-up: Parsing metadata for XML export", - booktitle = "Proceedings of the 3rd. annual workshop on Librarians and Computers", - series = "LAC '10", - editor = "Reginald N. Smythe and Alexander Noble", - volume = "3", - year = "2010", - publisher = "Paparazzi Press", - address = "Milan Italy", - pages = "422--431", - doi = "99.9999/woot07-S422", - url = "http://dx.doi.org/99.0000/woot07-S422", - number = "", - month = "", - organization = "", - note = "", -} - -@Inproceedings{VanGundy07, - author = "Matthew Van Gundy and Davide Balzarotti and Giovanni Vigna", - year = 2007, - title = "Catch me, if you can: Evading network signatures with web-based polymorphic worms", - booktitle = "Proceedings of the first USENIX workshop on Offensive Technologies", - series = "WOOT '07", - publisher = "USENIX Association", - address = "Berkley, CA", - articleno = {Paper 7}, - numpages = 9, -} - -@Inproceedings{VanGundy08, - author = "Matthew Van Gundy and Davide Balzarotti and Giovanni Vigna", - year = 2008, - title = "Catch me, if you can: Evading network signatures with web-based polymorphic worms", - booktitle = "Proceedings of the first USENIX workshop on Offensive Technologies", - series = "WOOT '08", - publisher = "USENIX Association", - address = "Berkley, CA", - articleno = 7, - numpages = 2, - pages = "99-100", -} - -@Inproceedings{VanGundy09, - author = "Matthew Van Gundy and Davide Balzarotti and Giovanni Vigna", - year = 2009, - title = "Catch me, if you can: Evading network signatures with web-based polymorphic worms", - booktitle = "Proceedings of the first USENIX workshop on Offensive Technologies", - series = "WOOT '09", - publisher = "USENIX Association", - address = "Berkley, CA", - pages = "90--100", -} - -@Inproceedings{Andler79, - author = "Sten Andler", - title = "Predicate Path expressions", - booktitle = "Proceedings of the 6th. ACM SIGACT-SIGPLAN symposium on Principles of Programming Languages", - series = "POPL '79", - year = "1979", - publisher = "ACM Press", - address = "New York, NY", - pages = "226--236", - doi = "10.1145/567752.567774", - url = "http://doi.acm.org/10.1145/567752.567774", - editor = "", - volume = "", - number = "", - month = "", - organization = "", - note = "", -} - -@Techreport{Harel78, - author = "David Harel", - year = "1978", - title = "LOGICS of Programs: AXIOMATICS and DESCRIPTIVE POWER", - institution = "Massachusetts Institute of Technology", - type = "MIT Research Lab Technical Report", - number = "TR-200", - address = "Cambridge, MA", - month = "", - note = "", -} - -@MASTERSTHESIS{anisi03, -author = {David A. Anisi}, -title = {Optimal Motion Control of a Ground Vehicle}, -school = {Royal Institute of Technology (KTH), Stockholm, Sweden}, -intitution = {FOI-R-0961-SE, Swedish Defence Research Agency (FOI)}, -year = {2003}, -} - - -@Phdthesis{Clarkson85, - author = "Kenneth L. Clarkson", - year = "1985", - title = "Algorithms for Closest-Point Problems (Computational Geometry)", - school = "Stanford University", - address = "Palo Alto, CA", - note = "UMI Order Number: AAT 8506171", - type = "", - month = "", -} - - -@online{Thornburg01, - author = "Harry Thornburg", - year = "2001", - title = "Introduction to Bayesian Statistics", - url = "http://ccrma.stanford.edu/~jos/bayes/bayes.html", - month = mar, - lastaccessed = "March 2, 2005", -} - - -@online{Ablamowicz07, - author = "Rafal Ablamowicz and Bertfried Fauser", - year = "2007", - title = "CLIFFORD: a Maple 11 Package for Clifford Algebra Computations, version 11", - url = "http://math.tntech.edu/rafal/cliff11/index.html", - lastaccessed = "February 28, 2008", -} - - -@misc{Poker06, - author = "Poker-Edge.Com", - year = "2006", - month = mar, - title = "Stats and Analysis", - lastaccessed = "June 7, 2006", - url = "http://www.poker-edge.com/stats.php", -} - -@misc{Obama08, - author = "Barack Obama", - year = "2008", - title = "A more perfect union", - howpublished = "Video", - day = "5", - url = "http://video.google.com/videoplay?docid=6528042696351994555", - month = mar, - lastaccessed = "March 21, 2008", - note = "", -} - -@misc{JoeScientist001, - author = "Joseph Scientist", - year = "2009", - title = "The fountain of youth", - note = "Patent No. 12345, Filed July 1st., 2008, Issued Aug. 9th., 2009", - url = "", - howpublished = "", - month = aug, - lastaccessed = "", -} - - -@Inproceedings{Novak03, - author = "Dave Novak", - title = "Solder man", - booktitle = "ACM SIGGRAPH 2003 Video Review on Animation theater Program: Part I - Vol. 145 (July 27--27, 2003)", - year = "2003", - publisher = "ACM Press", - address = "New York, NY", - pages = "4", - month = "March 21, 2008", - doi = "99.9999/woot07-S422", - url = "http://video.google.com/videoplay?docid=6528042696351994555", - note = "", - howpublished = "Video", - editor = "", - volume = "", - number = "", - series = "", - organization = "", - distinctURL = 1 -} - - -@article{Lee05, - author = "Newton Lee", - year = "2005", - title = "Interview with Bill Kinder: January 13, 2005", - journal = "Comput. Entertain.", - eid = "4", - volume = "3", - number = "1", - month = "Jan.-March", - doi = "10.1145/1057270.1057278", - url = "http://doi.acm.org/10.1145/1057270.1057278", - howpublished = "Video", - note = "", -} - -@article{rous08, - author = "Bernard Rous", - year = "2008", - title = "The Enabling of Digital Libraries", - journal = "Digital Libraries", - volume = "12", - number = "3", - month = jul, - articleno = "Article~5", - doi = "", - url = "", - howpublished = "", - note = "To appear", -} - -@article{384253, - author = {Werneck,, Renato and Setubal,, Jo\~{a}o and da Conceic\~{a}o,, Arlindo}, - title = {(old) Finding minimum congestion spanning trees}, - journal = {J. Exp. Algorithmics}, - volume = {5}, - year = {2000}, - issn = {1084-6654}, - pages = {11}, - doi = {http://doi.acm.org/10.1145/351827.384253}, - publisher = {ACM}, - address = {New York, NY, USA}, - } - - -@article{Werneck:2000:FMC:351827.384253, - author = {Werneck, Renato and Setubal, Jo\~{a}o and da Conceic\~{a}o, Arlindo}, - title = {(new) Finding minimum congestion spanning trees}, - journal = {J. Exp. Algorithmics}, - volume = 5, - month = dec, - year = 2000, - issn = {1084-6654}, - articleno = 11, - url = {http://portal.acm.org/citation.cfm?id=351827.384253}, - doi = {10.1145/351827.384253}, - acmid = 384253, - publisher = {ACM}, - address = {New York, NY, USA}, -} - -@article{1555162, - author = {Conti, Mauro and Di Pietro, Roberto and Mancini, Luigi V. and Mei, Alessandro}, - title = {(old) Distributed data source verification in wireless sensor networks}, - journal = {Inf. Fusion}, - volume = {10}, - number = {4}, - year = {2009}, - issn = {1566-2535}, - pages = {342--353}, - doi = {http://dx.doi.org/10.1016/j.inffus.2009.01.002}, - publisher = {Elsevier Science Publishers B. V.}, - address = {Amsterdam, The Netherlands, The Netherlands}, - } - -@article{Conti:2009:DDS:1555009.1555162, - author = {Conti, Mauro and Di Pietro, Roberto and Mancini, Luigi V. and Mei, Alessandro}, - title = {(new) Distributed data source verification in wireless sensor networks}, - journal = {Inf. Fusion}, - volume = {10}, - number = {4}, - month = oct, - year = {2009}, - issn = {1566-2535}, - pages = {342--353}, - numpages = {12}, - url = {http://portal.acm.org/citation.cfm?id=1555009.1555162}, - doi = {10.1016/j.inffus.2009.01.002}, - acmid = {1555162}, - publisher = {Elsevier Science Publishers B. V.}, - address = {Amsterdam, The Netherlands, The Netherlands}, - keywords = {Clone detection, Distributed protocol, Securing data fusion, Wireless sensor networks}, -} - -@inproceedings{Li:2008:PUC:1358628.1358946, - author = {Li, Cheng-Lun and Buyuktur, Ayse G. and Hutchful, David K. and Sant, Natasha B. and Nainwal, Satyendra K.}, - title = {Portalis: using competitive online interactions to support aid initiatives for the homeless}, - booktitle = {CHI '08 extended abstracts on Human factors in computing systems}, - year = {2008}, - isbn = {978-1-60558-012-X}, - location = {Florence, Italy}, - pages = {3873--3878}, - numpages = {6}, - url = {http://portal.acm.org/citation.cfm?id=1358628.1358946}, - doi = {10.1145/1358628.1358946}, - acmid = {1358946}, - publisher = {ACM}, - address = {New York, NY, USA}, - keywords = {cscw, distributed knowledge acquisition, incentive design, online games, recommender systems, reputation systems, user studies, virtual community}, -} - -@book{Hollis:1999:VBD:519964, - author = {Hollis, Billy S.}, - title = {Visual Basic 6: Design, Specification, and Objects with Other}, - year = {1999}, - isbn = {0130850845}, - edition = {1st}, - publisher = {Prentice Hall PTR}, - address = {Upper Saddle River, NJ, USA}, - } - - -@book{Goossens:1999:LWC:553897, - author = {Goossens, Michel and Rahtz, S. P. and Moore, Ross and Sutor, Robert S.}, - title = {The Latex Web Companion: Integrating TEX, HTML, and XML}, - year = {1999}, - isbn = {0201433117}, - edition = {1st}, - publisher = {Addison-Wesley Longman Publishing Co., Inc.}, - address = {Boston, MA, USA}, - } - -% need to test genres for errant isbn output - -% techreport -@techreport{897367, - author = {Buss, Jonathan F. and Rosenberg, Arnold L. and Knott, Judson D.}, - title = {Vertex Types in Book-Embeddings}, - year = {1987}, - source = {http://www.ncstrl.org:8900/ncstrl/servlet/search?formname=detail\&id=oai%3Ancstrlh%3Aumass_cs%3Ancstrl.umassa_cs%2F%2FUM-CS-1987-018}, - publisher = {University of Massachusetts}, - address = {Amherst, MA, USA}, - } - -@techreport{Buss:1987:VTB:897367, - author = {Buss, Jonathan F. and Rosenberg, Arnold L. and Knott, Judson D.}, - title = {Vertex Types in Book-Embeddings}, - year = {1987}, - source = {http://www.ncstrl.org:8900/ncstrl/servlet/search?formname=detail\&id=oai%3Ancstrlh%3Aumass_cs%3Ancstrl.umassa_cs%2F%2FUM-CS-1987-018}, - publisher = {University of Massachusetts}, - address = {Amherst, MA, USA}, - } - -% whole proceedings - -@proceedings{Czerwinski:2008:1358628, - author = {}, - note = {General Chair-Czerwinski, Mary and General Chair-Lund, Arnie and Program Chair-Tan, Desney}, - title = {CHI '08: CHI '08 extended abstracts on Human factors in computing systems}, - year = {2008}, - isbn = {978-1-60558-012-X}, - location = {Florence, Italy}, - order_no = {608085}, - publisher = {ACM}, - address = {New York, NY, USA}, - } - -% phdthesis - -@phdthesis{Clarkson:1985:ACP:911891, - author = {Clarkson, Kenneth Lee}, - advisor = {Yao, Andrew C.}, - title = {Algorithms for Closest-Point Problems (Computational Geometry)}, - year = {1985}, - note = {AAT 8506171}, - school = {Stanford University}, - address = {Stanford, CA, USA}, - } -% school is being picked up -- but not publisher (which is OK) -% Also -- the title is NOT being output in italics !!! Arrrrgh! - I fixed it. :-) - - -%%% compare with 'old' -%%% atsign-Phdthesis{Clarkson85, -%%% author = "Kenneth L. Clarkson", -%%% year = "1985", -%%% title = "Algorithms for Closest-Point Problems (Computational Geometry)", -%%% school = "Stanford University", -%%% address = "Palo Alto, CA", -%%% note = "UMI Order Number: AAT 8506171", -%%% type = "", -%%% month = "", -%%%} - -% A bibliography -@Article{1984:1040142, - key = {{$\!\!$}}, - journal = {SIGCOMM Comput. Commun. Rev.}, - year = {1984}, - issn = {0146-4833}, - volume = {13-14}, - number = {5-1}, - issue_date = {January/April 1984}, - publisher = {ACM}, - address = {New York, NY, USA}, - } - - -% grinder -@inproceedings{2004:ITE:1009386.1010128, - key = {IEEE}, - title = {IEEE TCSC Executive Committee}, - booktitle = {Proceedings of the IEEE International Conference on Web Services}, - series = {ICWS '04}, - year = {2004}, - isbn = {0-7695-2167-3}, - pages = {21--22}, - url = {http://dx.doi.org/10.1109/ICWS.2004.64}, - doi = {http://dx.doi.org/10.1109/ICWS.2004.64}, - acmid = {1010128}, - publisher = {IEEE Computer Society}, - address = {Washington, DC, USA}, -} - -% div book -@book{Mullender:1993:DS:302430, - editor = {Mullender, Sape}, - title = {Distributed systems (2nd Ed.)}, - year = {1993}, - isbn = {0-201-62427-3}, - publisher = {ACM Press/Addison-Wesley Publishing Co.}, - address = {New York, NY, USA}, - } - -% master thesis (as techreport and thesis) - -@techreport{Petrie:1986:NAD:899644, - author = {Petrie, Charles J.}, - title = {New Algorithms for Dependency-Directed Backtracking (Master's thesis)}, - year = {1986}, - source = {http://www.ncstrl.org:8900/ncstrl/servlet/search?formname=detail\&id=oai%3Ancstrlh%3Autexas_cs%3AUTEXAS_CS%2F%2FAI86-33}, - publisher = {University of Texas at Austin}, - address = {Austin, TX, USA}, - } - -@MASTERSTHESIS{Petrie:1986:NAD:12345, - author = {Petrie, Charles J.}, - title = {New Algorithms for Dependency-Directed Backtracking (Master's thesis)}, - year = {1986}, - source = {http://www.ncstrl.org:8900/ncstrl/servlet/search?formname=detail\&id=oai%3Ancstrlh%3Autexas_cs%3AUTEXAS_CS%2F%2FAI86-33}, - school = {University of Texas at Austin}, - address = {Austin, TX, USA}, - } - - - - -@BOOK{book-minimal, - author = "Donald E. Knuth", - title = "Seminumerical Algorithms", - publisher = "Addison-Wesley", - year = "1981", -} - -% incollection (has an editor, title, and possibly a booktitle) -@INcollection{KA:2001, - author = {Kong, Wei-Chang}, - Title = {The implementation of electronic commerce in SMEs in Singapore (as Incoll)}, - booktitle = {E-commerce and cultural values}, - year = {2001}, - isbn = {1-59140-056-2}, - pages = {51--74}, - numpages = {24}, - url = {http://portal.acm.org/citation.cfm?id=887006.887010}, - acmid = {887010}, - publisher = {IGI Publishing}, - address = {Hershey, PA, USA}, -} - - -% with bibfield 'type' before chapter (note no editor) -@INBOOK{KAGM:2001, - author = {Kong, Wei-Chang}, - type = {Name of Chapter:}, - chapter = {The implementation of electronic commerce in SMEs in Singapore (Inbook-w-chap-w-type)}, - title = {E-commerce and cultural values}, - year = {2001}, - isbn = {1-59140-056-2}, - pages = {51--74}, - numpages = {24}, - url = {http://portal.acm.org/citation.cfm?id=887006.887010}, - acmid = {887010}, - publisher = {IGI Publishing}, - address = {Hershey, PA, USA}, -} - -%%% Notes! This is because the atsign-INBOOK citation type specifies EITHER -%%% editor or author, but not both. In my experiments with the harvard/dcu -%%% bibtex style (and presumably this applies to other styles too), bibtex -%%% ignores the editor information if author information exists in an -%%% atsign-INBOOK entry. atsign-INCOLLECTION is far more commonly used in my references, -%%% and in the absence of an editor I believe most bibtex styles will just -%%% ommit the editor from the reference - the chapter information will not -%%% end up in the in-text citation as you suggest it should be but at least -%%% there is a place to put the editor if necessary. - - - -% was 'Inbook' -- changed to incollection - (editor is different to author) - need to tell Asad to codify as such. -@incollection{Kong:2002:IEC:887006.887010, - author = {Kong, Wei-Chang}, - editor = {Theerasak Thanasankit}, - title = {Chapter 9}, - booktitle = {E-commerce and cultural values (Incoll-w-text (chap 9) 'title')}, - year = {2002}, - address = {Hershey, PA, USA}, - publisher = {IGI Publishing}, - url = {http://portal.acm.org/citation.cfm?id=887006.887010}, - pages = {51--74}, - numpages = {24}, - acmid = {887010}, - isbn = {1-59140-056-2}, - number = "", - type = "", - month = "", - note = "", -} - -% incol when the chapter is 'text' - due to presence of editor (different to author) -@incollection{Kong:2003:IEC:887006.887011, - author = {Kong, Wei-Chang}, - title = {The implementation of electronic commerce in SMEs in Singapore (Incoll)}, - booktitle = {E-commerce and cultural values}, - editor = {Thanasankit, Theerasak}, - year = {2003}, - isbn = {1-59140-056-2}, - pages = {51--74}, - numpages = {24}, - url = {http://portal.acm.org/citation.cfm?id=887006.887010}, - acmid = {887010}, - publisher = {IGI Publishing}, - address = {Hershey, PA, USA}, -} - -% ------ test -%incollection{Kong:2003:IEC:887006.887010, -% author = {Kong, Wei-Chang}, -% chapter = {The implementation of electronic commerce in SMEs in Singapore (Incoll-text-in-chap)}, -% booktitle = {booktitle E-commerce and cultural values}, -% title = {The title}, -% editor = {Thanasankit, Theerasak}, -% year = {2003}, -% isbn = {1-59140-056-2}, -% pages = {51--74}, -% numpages = {24}, -% url = {http://portal.acm.org/citation.cfm?id=887006.887010}, -% acmid = {887010}, -% publisher = {IGI Publishing}, -% address = {Hershey, PA, USA}, -%} - - -% --------- - - - - - -% Need inbook with num in chapter - -% and inbook with number in chapter -@InBook{Kong:2004:IEC:123456.887010, - author = {Kong, Wei-Chang}, - editor = {Theerasak Thanasankit}, - title = {E-commerce and cultural values - (InBook-num-in-chap)}, - chapter = {9}, - year = {2004}, - address = {Hershey, PA, USA}, - publisher = {IGI Publishing}, - url = {http://portal.acm.org/citation.cfm?id=887006.887010}, - pages = {51--74}, - numpages = {24}, - acmid = {887010}, - isbn = {1-59140-056-2}, - number = "", - type = "", - month = "", - note = "", -} - - -% and inbook with text in chapter -@Inbook{Kong:2005:IEC:887006.887010, - author = {Kong, Wei-Chang}, - editor = {Theerasak Thanasankit}, - title = {E-commerce and cultural values (Inbook-text-in-chap)}, - chapter = {The implementation of electronic commerce in SMEs in Singapore}, - year = {2005}, - address = {Hershey, PA, USA}, - publisher = {IGI Publishing}, - url = {http://portal.acm.org/citation.cfm?id=887006.887010}, - type = {Chapter:}, - pages = {51--74}, - numpages = {24}, - acmid = {887010}, - isbn = {1-59140-056-2}, - number = "", - month = "", - note = "", -} - - -% and inbook with a num and type field -@Inbook{Kong:2006:IEC:887006.887010, - author = {Kong, Wei-Chang}, - editor = {Theerasak Thanasankit}, - title = {E-commerce and cultural values (Inbook-num chap)}, - chapter = {22}, - year = {2006}, - address = {Hershey, PA, USA}, - publisher = {IGI Publishing}, - url = {http://portal.acm.org/citation.cfm?id=887006.887010}, - type = {Chapter (in type field)}, - pages = {51--74}, - numpages = {24}, - acmid = {887010}, - isbn = {1-59140-056-2}, - number = "", - month = "", - note = "", -} - - -% and incol coz we have a BLANK chapter - due to presence of editor -%atIncollection{Kong:2006:IEC:887006.887011, -% author = {Kong, Wei-Chang}, -% editor = {Theerasak Thanasankit}, -% title = "The title" -% booktitle = {E-commerce and cultural values (Incol-coz-blank-chap)}, -% year = {2006}, -% address = {Hershey, PA, USA}, -% publisher = {IGI Publishing}, -% url = {http://portal.acm.org/citation.cfm?id=887006.887010}, -% type = {Type!}, -% chapter = {}, -% pages = {51--74}, -% numpages = {24}, -% acmid = {887010}, -% isbn = {1-59140-056-2}, -% number = "", -% month = "", -% note = "", -%} - -@article{SaeediMEJ10, - author = {Mehdi Saeedi and Morteza Saheb Zamani and Mehdi Sedighi}, - title = {A library-based synthesis methodology for reversible logic}, - journal = {Microelectron. J.}, - volume = {41}, - number = {4}, - month = apr, - year = {2010}, - pages = {185--194}, -} - -@ARTICLE{SaeediJETC10, - author = {Mehdi Saeedi and Morteza Saheb Zamani and Mehdi Sedighi and Zahra Sasanian}, - title = {Synthesis of Reversible Circuit Using Cycle-Based Approach}, - journal = {J. Emerg. Technol. Comput. Syst.}, - volume = {6}, - number = {4}, - month = dec, - year = {2010} - } - -% Asad's new version -@article{Kirschmer:2010:AEI:1958016.1958018, - author = {Kirschmer, Markus and Voight, John}, - title = {Algorithmic Enumeration of Ideal Classes for Quaternion Orders}, - journal = {SIAM J. Comput.}, - issue_date = {January 2010}, - volume = {39}, - number = {5}, - month = jan, - year = {2010}, - issn = {0097-5397}, - pages = {1714--1747}, - numpages = {34}, - url = {http://dx.doi.org/10.1137/080734467}, - doi = {https://doi.org/10.1137/080734467}, - acmid = {1958018}, - publisher = {Society for Industrial and Applied Mathematics}, - address = {Philadelphia, PA, USA}, - keywords = {ideal classes, maximal orders, number theory, quaternion algebras}, -} - - -% incol due to presence of booktitle -@incollection{Hoare:1972:CIN:1243380.1243382, - author = {Hoare, C. A. R.}, - title = {Chapter II: Notes on data structuring}, - booktitle = {Structured programming (incoll)}, - editor = {Dahl, O. J. and Dijkstra, E. W. and Hoare, C. A. R.}, - year = {1972}, - isbn = {0-12-200550-3}, - pages = {83--174}, - numpages = {92}, - url = {http://portal.acm.org/citation.cfm?id=1243380.1243382}, - acmid = {1243382}, - publisher = {Academic Press Ltd.}, - address = {London, UK, UK}, -} - -% incol due to presence of booktitle -@incollection{Lee:1978:TQA:800025.1198348, - author = {Lee, Jan}, - title = {Transcript of question and answer session}, - booktitle = {History of programming languages I (incoll)}, - editor = {Wexelblat, Richard L.}, - year = {1981}, - isbn = {0-12-745040-8}, - pages = {68--71}, - numpages = {4}, - url = {http://doi.acm.org/10.1145/800025.1198348}, - doi = {http://doi.acm.org/10.1145/800025.1198348}, - acmid = {1198348}, - publisher = {ACM}, - address = {New York, NY, USA}, -} - -% incol due to booktitle -@incollection{Dijkstra:1979:GSC:1241515.1241518, - author = {Dijkstra, E.}, - title = {Go to statement considered harmful}, - booktitle = {Classics in software engineering (incoll)}, - year = {1979}, - isbn = {0-917072-14-6}, - pages = {27--33}, - numpages = {7}, - url = {http://portal.acm.org/citation.cfm?id=1241515.1241518}, - acmid = {1241518}, - publisher = {Yourdon Press}, - address = {Upper Saddle River, NJ, USA}, -} - -% incol due to booktitle -@incollection{Wenzel:1992:TVA:146022.146089, - author = {Wenzel, Elizabeth M.}, - title = {Three-dimensional virtual acoustic displays}, - booktitle = {Multimedia interface design (incoll)}, - year = {1992}, - isbn = {0-201-54981-6}, - pages = {257--288}, - numpages = {32}, - url = {http://portal.acm.org/citation.cfm?id=146022.146089}, - doi = {10.1145/146022.146089}, - acmid = {146089}, - publisher = {ACM}, - address = {New York, NY, USA}, -} - -% incol due to booktitle -@incollection{Mumford:1987:MES:54905.54911, - author = {Mumford, E.}, - title = {Managerial expert systems and organizational change: some critical research issues}, - booktitle = {Critical issues in information systems research (incoll)}, - year = {1987}, - isbn = {0-471-91281-6}, - pages = {135--155}, - numpages = {21}, - url = {http://portal.acm.org/citation.cfm?id=54905.54911}, - acmid = {54911}, - publisher = {John Wiley \& Sons, Inc.}, - address = {New York, NY, USA}, -} - -@book{McCracken:1990:SSC:575315, - author = {McCracken, Daniel D. and Golden, Donald G.}, - title = {Simplified Structured COBOL with Microsoft/MicroFocus COBOL}, - year = {1990}, - isbn = {0471514071}, - publisher = {John Wiley \& Sons, Inc.}, - address = {New York, NY, USA}, -} - -% Let's include Boris / BBeeton entries (multi-volume works) - -@book {MR781537, - AUTHOR = {H{\"o}rmander, Lars}, - TITLE = {The analysis of linear partial differential operators. {III}}, - SERIES = {Grundlehren der Mathematischen Wissenschaften [Fundamental - Principles of Mathematical Sciences]}, - VOLUME = {275}, - NOTE = {Pseudodifferential operators}, -PUBLISHER = {Springer-Verlag}, - ADDRESS = {Berlin, Germany}, - YEAR = {1985}, - PAGES = {viii+525}, - ISBN = {3-540-13828-5}, - MRCLASS = {35-02 (35Sxx 47G05 58G15)}, - MRNUMBER = {781536 (87d:35002a)}, -MRREVIEWER = {Min You Qi}, -} - -@book {MR781536, - AUTHOR = {H{\"o}rmander, Lars}, - TITLE = {The analysis of linear partial differential operators. {IV}}, - SERIES = {Grundlehren der Mathematischen Wissenschaften [Fundamental - Principles of Mathematical Sciences]}, - VOLUME = {275}, - NOTE = {Fourier integral operators}, -PUBLISHER = {Springer-Verlag}, - ADDRESS = {Berlin, Germany}, - YEAR = {1985}, - PAGES = {vii+352}, - ISBN = {3-540-13829-3}, - MRCLASS = {35-02 (35Sxx 47G05 58G15)}, - MRNUMBER = {781537 (87d:35002b)}, -MRREVIEWER = {Min You Qi}, -} - -%%%%%%%%%%%%%%%%%%%%%% Start of Aptara sample bib entries - -% acmsmall-sam.bib -@InProceedings{Adya-01, - author = {A. Adya and P. Bahl and J. Padhye and A.Wolman and L. Zhou}, - title = {A multi-radio unification protocol for {IEEE} 802.11 wireless networks}, - booktitle = {Proceedings of the IEEE 1st International Conference on Broadnets Networks (BroadNets'04)}, - publisher = "IEEE", - address = "Los Alamitos, CA", - year = {2004}, - pages = "210--217" -} - -@article{Akyildiz-01, - author = {I. F. Akyildiz and W. Su and Y. Sankarasubramaniam and E. Cayirci}, - title = {Wireless Sensor Networks: A Survey}, - journal = {Comm. ACM}, - volume = 38, - number = "4", - year = {2002}, - pages = "393--422" -} - -@article{Akyildiz-02, - author = {I. F. Akyildiz and T. Melodia and K. R. Chowdhury}, - title = {A Survey on Wireless Multimedia Sensor Networks}, - journal = {Computer Netw.}, - volume = 51, - number = "4", - year = {2007}, - pages = "921--960" -} - -@InProceedings{Bahl-02, - author = {P. Bahl and R. Chancre and J. Dungeon}, - title = {{SSCH}: Slotted Seeded Channel Hopping for Capacity Improvement in {IEEE} 802.11 Ad-Hoc Wireless Networks}, - booktitle = {Proceeding of the 10th International Conference on Mobile Computing and Networking (MobiCom'04)}, - publisher = "ACM", - address = "New York, NY", - year = {2004}, - pages = "112--117" -} - -@misc{CROSSBOW, - key = {CROSSBOW}, - title = {{XBOW} Sensor Motes Specifications}, - note = {http://www.xbow.com}, - year = 2008 -} - -@article{Culler-01, - author = {D. Culler and D. Estrin and M. Srivastava}, - title = {Overview of Sensor Networks}, - journal = {IEEE Comput.}, - volume = 37, - number = "8 (Special Issue on Sensor Networks)", - publisher = "IEEE", - address = "Los Alamitos, CA", - year = {2004}, - pages = "41--49" -} - -@misc{Harvard-01, - key = {Harvard CodeBlue}, - title = {{CodeBlue}: Sensor Networks for Medical Care}, - note = {http://www.eecs.harvard.edu/mdw/ proj/codeblue/}, - year = 2008 -} - -@InProceedings{Natarajan-01, - author = {A. Natarajan and M. Motani and B. de Silva and K. Yap and K. C. Chua}, - title = {Investigating Network Architectures for Body Sensor Networks}, - booktitle = {Network Architectures}, - editor = {G. Whitcomb and P. Neece}, - publisher = "Keleuven Press", - address = "Dayton, OH", - year = {2007}, - pages = "322--328", - eprint = "960935712", - primaryclass = "cs", -} - -@techreport{Tzamaloukas-01, - author = {A. Tzamaloukas and J. J. Garcia-Luna-Aceves}, - title = {Channel-Hopping Multiple Access}, - number = {I-CA2301}, - institution = {Department of Computer Science, University of California}, - address = {Berkeley, CA}, - year = {2000} -} - -@BOOK{Zhou-06, - author = {G. Zhou and J. Lu and C.-Y. Wan and M. D. Yarvis and J. A. Stankovic}, - title = {Body Sensor Networks}, - publisher = "MIT Press", - address = "Cambridge, MA", - year = {2008} -} - -@mastersthesis{ko94, -author = "Jacob Kornerup", -title = "Mapping Powerlists onto Hypercubes", -school = "The University of Texas at Austin", -note = "(In preparation)", -year = "1994"} -%month = "dec",} - -@PhdThesis{gerndt:89, - author = "Michael Gerndt", - title = "Automatic Parallelization for Distributed-Memory - Multiprocessing Systems", - school = "University of Bonn", - year = 1989, - address = "Bonn, Germany", - month = dec -} - -@article{6:1:1, -author = "J. E. {Archer, Jr.} and R. Conway and F. B. Schneider", -title = "User recovery and reversal in interactive systems", -journal = "ACM Trans. Program. Lang. Syst.", -volume = "6", -number = "1", -month = jan, -year = 1984, -pages = "1--19"} - -@article{7:1:137, -author = "D. D. Dunlop and V. R. Basili", -title = "Generalizing specifications for uniformly implemented loops", -journal = "ACM Trans. Program. Lang. Syst.", -volume = "7", -number = "1", -month = jan, -year = 1985, -pages = "137--158"} - -@article{7:2:183, -author = "J. Heering and P. Klint", -title = "Towards monolingual programming environments", -journal = "ACM Trans. Program. Lang. Syst.", -volume = "7", -number = "2", -month = apr, -year = 1985, -pages = "183--213"} - -@book{knuth:texbook, -author = "Donald E. Knuth", -title = "The {\TeX{}book}", -publisher = "Addison-Wesley", -address = "Reading, MA.", -year = 1984} - -@article{6:3:380, -author = "E. Korach and D. Rotem and N. Santoro", -title = "Distributed algorithms for finding centers and medians in networks", -journal = "ACM Trans. Program. Lang. Syst.", -volume = "6", -number = "3", -month = jul, -year = 1984, -pages = "380--401"} - -@book{Lamport:LaTeX, -author = "Leslie Lamport", -title = "\it {\LaTeX}: A Document Preparation System", -publisher = "Addison-Wesley", -address = "Reading, MA.", -year = 1986} - -@article{7:3:359, -author = "F. Nielson", -title = "Program transformations in a denotational setting", -journal = "ACM Trans. Program. Lang. Syst.", -volume = "7", -number = "3", -month = jul, -year = 1985, -pages = "359--379"} - -%testing -@BOOK{test, - author = "Donald E. Knuth", - title = "Seminumerical Algorithms", - volume = 2, - series = "The Art of Computer Programming", - publisher = "Addison-Wesley", - address = "Reading, MA", - edition = "2nd", - month = "10~" # jan, - year = "1981", -} - -@inproceedings{reid:scribe, -author = "Brian K. Reid", -title = "A high-level approach to computer document formatting", -booktitle = "Proceedings of the 7th Annual Symposium on Principles of - Programming Languages", -month = jan, -year = 1980, -publisher = "ACM", -address = "New York", -pages = "24--31"} - -@article{Zhou:2010:MMS:1721695.1721705, - author = {Zhou, Gang and Wu, Yafeng and Yan, Ting and He, Tian and Huang, Chengdu and Stankovic, John A. and Abdelzaher, Tarek F.}, - title = {A multifrequency MAC specially designed for wireless sensor network applications}, - journal = {ACM Trans. Embed. Comput. Syst.}, - issue_date = {March 2010}, - volume = 9, - number = 4, - month = {April}, - year = 2010, - issn = {1539-9087}, - pages = {39:1--39:41}, - articleno = 39, - numpages = 41, - url = {http://doi.acm.org/10.1145/1721695.1721705}, - doi = {10.1145/1721695.1721705}, - acmid = 1721705, - publisher = {ACM}, - address = {New York, NY, USA}, - keywords = {Wireless sensor networks, media access control, multi-channel, radio interference, time synchronization}, -} - - -@online{TUGInstmem, - key = {TUG}, - year = 2017, - title = "Institutional members of the {\TeX} Users Group", - url = "http://wwtug.org/instmem.html", - lastaccessed = "May 27, 2017", -} - -@online{CTANacmart, - author = {Boris Veytsman}, - title = {acmart---{C}lass for typesetting publications of {ACM}}, - year = 2017, - url = {http://www.ctan.org/pkg/acmart}, - lastaccessed = {May 27, 2017} - } - -@ARTICLE{bowman:reasoning, - author = {Bowman, Mic and Debray, Saumya K. and Peterson, Larry L.}, - title = {Reasoning About Naming Systems}, - journal = {ACM Trans. Program. Lang. Syst.}, - volume = {15}, - number = {5}, - pages = {795-825}, - month = {November}, - year = {1993}, - doi = {10.1145/161468.161471}, -} - -@ARTICLE{braams:babel, - author = {Braams, Johannes}, - title = {Babel, a Multilingual Style-Option System for Use with LaTeX's Standard Document Styles}, - journal = {TUGboat}, - volume = {12}, - number = {2}, - pages = {291-301}, - month = {June}, - year = {1991}, -} - -@INPROCEEDINGS{clark:pct, - AUTHOR = "Malcolm Clark", - TITLE = "Post Congress Tristesse", - BOOKTITLE = "TeX90 Conference Proceedings", - PAGES = "84-89", - ORGANIZATION = "TeX Users Group", - MONTH = "March", - YEAR = {1991} -} - -@ARTICLE{herlihy:methodology, - author = {Herlihy, Maurice}, - title = {A Methodology for Implementing Highly Concurrent Data Objects}, - journal = {ACM Trans. Program. Lang. Syst.}, - volume = {15}, - number = {5}, - pages = {745-770}, - month = {November}, - year = {1993}, - doi = {10.1145/161468.161469}, -} - -@BOOK{salas:calculus, - AUTHOR = "S.L. Salas and Einar Hille", - TITLE = "Calculus: One and Several Variable", - PUBLISHER = "John Wiley and Sons", - ADDRESS = "New York", - YEAR = "1978" -} - -@MANUAL{Fear05, - title = {Publication quality tables in {\LaTeX}}, - author = {Simon Fear}, - month = {April}, - year = 2005, - note = {\url{http://www.ctan.org/pkg/booktabs}} -} - -@Manual{Amsthm15, - title = {Using the amsthm Package}, - organization = {American Mathematical Society}, - month = {April}, - year = 2015, - note = {\url{http://www.ctan.org/pkg/amsthm}} -} - -@ArtifactSoftware{R, - title = {R: A Language and Environment for Statistical Computing}, - author = {{R Core Team}}, - organization = {R Foundation for Statistical Computing}, - address = {Vienna, Austria}, - year = {2019}, - url = {https://www.R-project.org/}, -} - -@ArtifactDataset{UMassCitations, - author = {Sam Anzaroot and Andrew McCallum}, - title = {{UMass} Citation Field Extraction Dataset}, - year = 2013, - url = - {http://www.iesl.cs.umass.edu/data/data-umasscitationfield}, - lastaccessed = {May 27, 2019} -} - -@Eprint{Bornmann2019, - author = {Bornmann, Lutz and Wray, K. Brad and Haunschild, - Robin}, - title = {Citation concept analysis {(CCA)}---A new form of - citation analysis revealing the usefulness of - concepts for other researchers illustrated by two - exemplary case studies including classic books by - {Thomas S.~Kuhn} and {Karl R.~Popper}}, - keywords = {Computer Science - Digital Libraries}, - year = 2019, - month = "May", - eid = {arXiv:1905.12410}, -archivePrefix = {arXiv}, - eprint = {1905.12410}, - primaryClass = {cs.DL}, -} - -@Eprint{AnzarootPBM14, - author = {Sam Anzaroot and - Alexandre Passos and - David Belanger and - Andrew McCallum}, - title = {Learning Soft Linear Constraints with Application to - Citation Field Extraction}, - year = {2014}, - archivePrefix = {arXiv}, - eprint = {1403.1349}, -} - -@inproceedings{Hagerup1993, -title = {Maintaining Discrete Probability Distributions Optimally}, -author = {Hagerup, Torben and Mehlhorn, Kurt and Munro, J. Ian}, -booktitle = {Proceedings of the 20th International Colloquium on Automata, Languages and Programming}, -series = {Lecture Notes in Computer Science}, -volume = {700}, -pages = {253--264}, -year = {1993}, -publisher = {Springer-Verlag}, -address = {Berlin}, -} - -@book{texbook, - author = {Donald E. Knuth}, - year = {1986}, - title = {The {\TeX} Book}, - publisher = {Addison-Wesley Professional} +@ARTICLE{joukah_15, + author={Jouppi, Norman P. and Kahng, Andrew B. and Muralimanohar, Naveen and Srinivas, Vaishnav}, + journal={IEEE Transactions on Very Large Scale Integration (VLSI) Systems}, + title={CACTI-IO: CACTI With OFF-Chip Power-Area-Timing Models}, + year={2015}, + volume={23}, + number={7}, + pages={1254-1267}, + keywords={Timing;Integrated circuit interconnections;Random access memory;Clocks;Servers;Jitter;Mobile communication;CACTI;CACTI-IO;dynamic random access memory (DRAM);IO;memory interface;power and timing models;CACTI;CACTI-IO;dynamic random access memory (DRAM);IO;memory interface;power and timing models}, + doi={10.1109/TVLSI.2014.2334635}} + +@inproceedings{joukah_12, +author = {Jouppi, Norman P. and Kahng, Andrew B. and Muralimanohar, Naveen and Srinivas, Vaishnav}, +title = {CACTI-IO: CACTI with off-chip power-area-timing models}, +year = {2012}, +isbn = {9781450315739}, +publisher = {Association for Computing Machinery}, +address = {New York, NY, USA}, +url = {https://doi.org/10.1145/2429384.2429446}, +doi = {10.1145/2429384.2429446}, +booktitle = {Proceedings of the International Conference on Computer-Aided Design}, +pages = {294–301}, +numpages = {8}, +keywords = {CACTI, DRAM, IO, memory interface, power and timing models}, +location = {San Jose, California}, +series = {ICCAD '12} +} + +@misc{micron_ddr3_11_kopie_ipsj, + title = {{Micron System Power Calculator}}, + author = {{Micron}}, + howpublished = {last access 2024-11-12}, + url={https://www.micron.com/sales-support/design-tools/dram-power-calculator}, + year={2014} +} + +@misc{kargoo_14, + title = {{{DRAMPower}}: {{Open-source DRAM}} Power \& Energy Estimation Tool}, + author = {Chandrasekar, Karthik and Weis, Christian and Li, Yonghui and Akesson, Benny and Naji, Omar and Jung, Matthias and Wehn, Norbert and Goossens, Kees}, + year = {Last Access 15.08.2019}, + address = {http://www.drampower.info/}, + owner = {Brugger}, + timestamp = {2019-08-15} +} + +@inproceedings{junmat_16b, + title = {A {{New Bank Sensitive DRAMPower Model}} for {{Efficient Design Space Exploration}}}, + booktitle = {International Workshop on Power and Timing Modeling, Optimization and Simulation ({{PATMOS}} 2016)}, + author = {Jung, Matthias and Mathew, Deepak M. and Zulian, {\'E}der F. and Weis, Christian and Wehn, Norbert}, + year = {2016}, + owner = {MJ}, + timestamp = {2017-06-15} +} + +@inproceedings{matzul_17, +author = {Mathew, Deepak M. and Zulian, \'{E}der F. and Kannoth, Subash and Jung, Matthias and Weis, Christian and Wehn, Norbert}, +title = {A Bank-Wise DRAM Power Model for System Simulations}, +year = {2017}, +isbn = {9781450348409}, +publisher = {Association for Computing Machinery}, +address = {New York, NY, USA}, +url = {https://doi.org/10.1145/3023973.3023978}, +doi = {10.1145/3023973.3023978}, +booktitle = {Proceedings of the 9th Workshop on Rapid Simulation and Performance Evaluation: Methods and Tools}, +articleno = {5}, +numpages = {7}, +keywords = {DRAM, Power, Simulation}, +location = {Stockholm, Sweden}, +series = {RAPIDO '17} +} + +@article{ghoyag_18, + title = {What {{Your DRAM Power Models Are Not Telling You}}: {{Lessons}} from a {{Detailed Experimental Study}}}, + shorttitle = {What {{Your DRAM Power Models Are Not Telling You}}}, + author = {Ghose, Saugata and Yaglik{\c c}i, Abdullah Giray and Gupta, Raghav and Lee, Donghyuk and Kudrolli, Kais and Liu, William X. and Hassan, Hasan and Chang, Kevin K. and Chatterjee, Niladrish and Agrawal, Aditya and O'Connor, Mike and Mutlu, Onur}, + year = {2018}, + month = dec, + journal = {Proc. ACM Meas. Anal. Comput. Syst.}, + volume = {2}, + number = {3}, + pages = {38:1--38:41}, + doi = {10.1145/3224419}, + urldate = {2024-10-25}, + file = {/Users/myzinsky/Zotero/storage/NYBYGMFT/Ghose et al. - 2018 - What Your DRAM Power Models Are Not Telling You Lessons from a Detailed Experimental Study.pdf} +} + +@ARTICLE{holsta_19, + author={Hollis, Timothy M. and Stave, Eric and Ovard, Dave and Greeff, Roy and Spirkl, Worfgang and Brox, Martin and Taylor, Jennifer and Butterfield, Justin}, + journal={IEEE Solid-State Circuits Magazine}, + title={Recent Evolution in the DRAM Interface: Mile-Markers Along Memory Lane}, + year={2019}, + volume={11}, + number={2}, + pages={14-30}, + keywords={Random access memory;Bandwidth;DRAM chips;Graphics;Memory management;Semiconductor devices}, + doi={10.1109/MSSC.2019.2910617}} + +@article{balkah_17, +author = {Balasubramonian, Rajeev and Kahng, Andrew B. and Muralimanohar, Naveen and Shafiee, Ali and Srinivas, Vaishnav}, +title = {CACTI 7: New Tools for Interconnect Exploration in Innovative Off-Chip Memories}, +year = {2017}, +issue_date = {June 2017}, +publisher = {Association for Computing Machinery}, +address = {New York, NY, USA}, +volume = {14}, +number = {2}, +issn = {1544-3566}, +url = {https://doi.org/10.1145/3085572}, +doi = {10.1145/3085572}, +journal = {ACM Trans. Archit. Code Optim.}, +month = jun, +articleno = {14}, +numpages = {25}, +keywords = {DRAM, Memory, NVM, interconnects, tools} +} + +@ARTICLE{donxu_12, + author={Dong, Xiangyu and Xu, Cong and Xie, Yuan and Jouppi, Norman P.}, + journal={IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems}, + title={NVSim: A Circuit-Level Performance, Energy, and Area Model for Emerging Nonvolatile Memory}, + year={2012}, + volume={31}, + number={7}, + pages={994-1007}, + keywords={Nonvolatile memory;Arrays;Phase change random access memory;Wires;Distributed databases;Integrated circuit modeling;Analytical circuit model;MRAM;NAND Flash;nonvolatile memory;phase-change random-access memory (PCRAM);resistive random-access memory (ReRAM);spin-torque-transfer memory (STT-RAM)}, + doi={10.1109/TCAD.2012.2185930}} + +@book{dalpou_98, +place={Cambridge}, +title={Digital Systems Engineering}, +publisher={Cambridge University Press}, +author={Dally, William J. and Poulton, John W.}, +year={1998} +} + +@book{bak_90, + title={Circuits, Interconnections, and Packaging for VLSI}, + author={Bakoglu, H.B.}, + isbn={9780201060089}, + lccn={87022964}, + series={Addison-Wesley VLSI systems series}, + year={1990}, + publisher={Addison-Wesley Publishing Company} } \ No newline at end of file diff --git a/img/bankwise_current.tex b/img/bankwise_current.tex new file mode 100644 index 0000000..c6b3714 --- /dev/null +++ b/img/bankwise_current.tex @@ -0,0 +1,83 @@ +\begin{tikzpicture} +%\scriptsize +%\newcommand*\circled[1]{ +% \tikz[baseline=(char.base)]{ +% \node[shape=circle,draw,inner sep=0.5pt,fill=white] (char) {\scriptsize#1}; +% } +%} + + +% Variables: +\def\IDDTWO{30} %mA +\def\IDDTHREE{100} %mA +\def\BONE{65} %mA + +\def\ENDWIDTH{0.5} +\def\SEVEN{6.7} + + +\draw[thick] (0,-\ENDWIDTH) node[anchor=north] {$0$} -- (0,0.1) node[anchor=south] {}; +\draw[thick] (2,-\ENDWIDTH) node[anchor=north] {$I_{DD2N}$} -- (2,0.1) node[anchor=south] {}; +\draw[thick] (4,-\ENDWIDTH) node[anchor=north] {$I_{\rho}$} -- (4,0.1) node[anchor=south] {}; + +\draw[thick] (\SEVEN,-\ENDWIDTH) node[anchor=north] {$I_{DD3N}$} -- (\SEVEN,0.1) node[anchor=south] {\circled{B}}; + +\draw[thick] (-0.5,0) -- (0.7,0) node[anchor=west] {}; + +%\draw[thick] (0.7,0.2) to [bend right=20] (0.7,0); +%\draw[thick] (0.7,-0.2) to [bend right=20] (0.7,0); +% +%\draw[dotted, thick] (0.7,0) -- (1.1,0); +\draw[thick] (0.7,0) -- (1.1,0); +% +%\draw[thick] (1.1,0.2) to [bend right=20] (1.1,0); +%\draw[thick] (1.1,-0.2) to [bend right=20] (1.1,0); + + +\draw[thick] (1.1,0) -- (6.0,0); +%\draw[thick,-{Latex[scale=2.5, length=2, width=3]}] (1.2,0) -- (\SEVEN+0.6,0) node[anchor=west] {[mA]}; +\draw[thick,-{Latex}] (6.4,0) -- (\SEVEN+0.6,0) node[anchor=west] {}; + + +%% Draw Bank 0: +%\draw[thick] (\PPOS,-0.2) node[anchor=north] {\scriptsize\PVALUEROUND} -- +%(\PPOS,0.2) node[anchor=south] {$I_{\rho}$}; + +%% Draw Other Banks: + +\draw[thick] (4.3375,-0.1) -- (4.3375,0.1) node[anchor=south] +{\circled{1}}; +\draw[thick] (4.6750,-0.1) -- (4.6750,0.1) node[anchor=south] +{\circled{2}}; +\draw[thick] (5.0125,-0.1) -- (5.0125,0.1) node[anchor=south] +{\circled{3}}; +\draw[thick] (5.3500,-0.1) -- (5.3500,0.1) node[anchor=south] +{\circled{4}}; +\draw[thick] (5.6875,-0.1) -- (5.6875,0.1) node[anchor=south] +{\circled{5}}; +%\draw[thick] (6.0250,-0.1) -- (6.0250,0.1) node[anchor=south] +%{\circled{6}}; +%\draw[thick] (6.3625,-0.1) -- (6.3625,0.1) node[anchor=south] +%{\circled{7}}; + +\draw[thick] (6.0,0.2) to [bend right=20] (6.0,0); +\draw[thick] (6.0,-0.2) to [bend right=20] (6.0,0); + +\draw[dotted, thick] (6.0,0) -- (6.4,0);% node[anchor=west] {}; + +\draw[thick] (6.4,0.2) to [bend right=20] (6.4,0); +\draw[thick] (6.4,-0.2) to [bend right=20] (6.4,0); + +%% DRAW P + +\draw [thick, +black,decorate,decoration={brace,amplitude=10pt,mirror},xshift=0.0pt,yshift=-0.0pt](2,0) +-- (4,0) node[black,midway,yshift=-0.6cm] {\footnotesize +$\rho$}; + +\draw [thick, +black,decorate,decoration={brace,amplitude=10pt,mirror},xshift=0.0pt,yshift=-0.0pt](4,0) +-- (\SEVEN,0) node[black,midway,yshift=-0.6cm] {\footnotesize +$1-\rho$}; + +\end{tikzpicture} \ No newline at end of file diff --git a/img/currents_table.tex b/img/currents_table.tex new file mode 100644 index 0000000..891a7ba --- /dev/null +++ b/img/currents_table.tex @@ -0,0 +1,13 @@ +\begin{tabular}{cl} +\toprule +\textbf{Symbol} & \textbf{Description}\\ +\midrule +IDD0 & Operating One Bank Active-Precharge Current\\ +IDD2N & Precharge Standby Current\\ +IDD3N & Active Standby Current\\ +IDD4R & Operating Burst Read Current\\ +IDD4W & Operating Burst Write Current\\ +IDD5B & Burst Refresh Current\\ +IDD6N & Self Refresh Current\\ +\bottomrule +\end{tabular}% \ No newline at end of file diff --git a/img/implicit_commands.tex b/img/implicit_commands.tex new file mode 100644 index 0000000..3839ea9 --- /dev/null +++ b/img/implicit_commands.tex @@ -0,0 +1,43 @@ +\begin{tikztimingtable} [timing/d/background/.style={fill=white}, + timing/lslope=0.2, xscale=1.80, yscale=1.0,] + {\small \rmfamily CK\_t} & + L + N(P1) + 8{T} + N(P2) + 2{T} + N(P7) + 2{T} + N(P3) + 2{T} + N(P4) + 2{T} + N(P6) + 2{T} + N(P5) + 2.0{T}\\ + {\small \rmfamily CMD} & + 0.5U O 1U A 1U O 1U O 1U R 1U O 1U O 1U O 1U O 1U O 1.5U\\ + %ADR + {\small \rmfamily STATE} & + 3D{\small \texttt{PRECHARGED}} + 14D{\small \texttt{ACTIVE}} + 4D{\small \texttt{PRECHARGED}}\\ + \extracode + \begin{pgfonlayer}{background} + + %\timemeasuup{P1}{P5}{-4.0}{\small $t_{RC} = t_{RAS} + t_{RP}$} + %\timemeasuup{P3}{P6}{-2.0}{\small $t_{BURST}$} + \timemeasure{P2}{P6}{ 5.0}{\tiny $t_{RTP}$} + %\timemeasure{P2}{P3}{ 7.0}{\small $t_{CL}$} + %\timemeasure{P1}{P4}{ 9.0}{\small $t_{RAS}$} + %\timemeasure{P4}{P5}{ 9.0}{\small $t_{RP}$} + %\timemeasure{P7}{P4}{11.0}{\small $t_{RTP}$} + %\timemeasuup{P2}{P7}{-2.0}{\small $t_{CCD}$} + + % Add vertical lines + \begin{scope}[semitransparent,semithick] + \vertlines[gray]{1.1,3.1,...,19.1} + \end{scope} + \end{pgfonlayer} +\end{tikztimingtable}% \ No newline at end of file diff --git a/img/refresh_currents.tex b/img/refresh_currents.tex new file mode 100644 index 0000000..09e5fc6 --- /dev/null +++ b/img/refresh_currents.tex @@ -0,0 +1,99 @@ +\begin{tikzpicture} + +% Define colors +\definecolor{idlecolor}{RGB}{255, 204, 153} % Light orange +\definecolor{refcolor}{RGB}{153, 204, 255} % Light blue +\definecolor{backgroundcolor}{RGB}{255, 255, 153} % Light yellow + +\newcommand{\ya}{1} +\newcommand{\yb}{2.6} +\newcommand{\yc}{6} + +\pgfdeclarelayer{background} +\pgfsetlayers{background, main} +% Define the axis +\begin{axis}[ + %width=15cm, height=8cm, + xlabel={Time}, + ylabel={Current}, + xmin=0, xmax=6, + ymin=0, ymax=7, + xtick=\empty, + ytick=\empty, + extra y ticks={\ya, \yb, \yc}, + extra y tick labels={$I_{DD2N}$, $I_{DD5A}$, $I_{DD5B}$}, + axis x line=middle, + axis y line=middle, + y axis line style={-Latex}, + x axis line style={-Latex}, + axis line style=thick, + ylabel near ticks, + xlabel near ticks, +] +% Shaded areas +%% IDLE energy (orange stripes) +%\addplot[domain=0:3.3, fill=idlecolor, pattern=north east lines, draw=none] {1.5} \closedcycle; +\begin{pgfonlayer}{background} +\draw[pattern=north east lines, pattern color=red!50, draw=none] (axis cs:1,\ya) rectangle (axis cs:2,\yc); +\draw[pattern=north east lines, pattern color=red!50, draw=none] (axis cs:4,\ya) rectangle (axis cs:5,\yc); +\draw[pattern=north east lines, pattern color=green!50, draw=none] (axis cs:0,0) rectangle (axis cs:6,1); +\draw[pattern=north west lines, pattern color=blue!50, draw=none] (axis cs:0,\ya) rectangle (axis cs:6,\yb); +\end{pgfonlayer} +%\addplot[domain=3.7:7, fill=idlecolor, pattern=north east lines, draw=none] {1.5} \closedcycle; +%\addplot[domain=7.4:10, fill=idlecolor, pattern=north east lines, draw=none] {1.5} \closedcycle; +%% IDD5PB_B Background energy (yellow stripes) +%\addplot[domain=0:3.3, fill=backgroundcolor, pattern=north west lines, draw=none] {2.5} \closedcycle; +%\addplot[domain=3.7:7, fill=backgroundcolor, pattern=north west lines, draw=none] {2.5} \closedcycle; +%\addplot[domain=7.4:10, fill=backgroundcolor, pattern=north west lines, draw=none] {2.5} \closedcycle; +%% REFpb Foreground energy (blue stripes) +%\addplot[domain=1:2.3, fill=refcolor, pattern=north east lines, draw=none] {4.5} \closedcycle; +%\addplot[domain=4.7:6, fill=refcolor, pattern=north east lines, draw=none] {4.5} \closedcycle; +%\addplot[domain=7.7:9, fill=refcolor, pattern=north east lines, draw=none] {4.5} \closedcycle; +% Plot the current curve (in blue) +%\addplot[domain=0:10, samples=100, thick, blue] +% ({x}, {x < 1 || (x > 3 && x < 4.7) || x > 7.4 ? 2.5 : +% (x >= 1 && x <= 2.3) || (x >= 4.7 && x <= 6) || (x >= 7.7 && x <= 9) ? +% 4.5 : 1.5}) ; +\addplot[thick] coordinates {(0,\ya) (1,\ya)}; +\addplot[thick] coordinates {(1,\ya) (1,\yc)}; +\addplot[thick] coordinates {(1,\yc) (2,\yc)}; +\addplot[thick] coordinates {(2,\yc) (2,\ya)}; +\addplot[thick] coordinates {(2,\ya) (4,\ya)}; +\addplot[thick] coordinates {(4,\ya) (4,\yc)}; +\addplot[thick] coordinates {(4,\yc) (5,\yc)}; +\addplot[thick] coordinates {(5,\yc) (5,\ya)}; +\addplot[thick] coordinates {(5,\ya) (6,\ya)}; +% Mark important points (IDD5PB, IDD5PB_B, I0, IDD2N levels) +\addplot[dashed] coordinates {(0,\ya) (6,\ya)}; % IDD2N +\addplot[dashed] coordinates {(0,\yb) (6,\yb)}; % IDD5PB +\addplot[dashed] coordinates {(0,\yc) (6,\yc)}; % IDD5PB_B +% Text Annotations +%\node[align=left] at (axis cs:9.8,5.8) {\textbf{IDD5B}}; +%\node[align=left] at (axis cs:9.8,4.3) {\textbf{IDD5A}}; +%%\node[align=left] at (axis cs:9.8,2.3) {\textbf{I\_0}}; +%\node[align=left] at (axis cs:9.8,1.3) {\textbf{IDD2N}}; +% Labels for periods tRFCpb and tREFI8 +\draw[thick, {Latex}-{Latex}] (axis cs:1,5) -- (axis cs:2,5) node[midway,below] {$t_{RFC}$}; +%\draw[thick, {Latex}-{Latex}] (axis cs:4,5) -- (axis cs:5,5) node[midway,below] {$tRFC$}; +\draw[thick, {Latex}-{Latex}] (axis cs:1,4) -- (axis cs:4,4) node[midway,below] {$t_{REFI}$}; +%\draw[thick, <->] (axis cs:1,0.5) -- (axis cs:2.3,0.5) node[midway,below] {$tRFC_{pb}$}; +%\draw[thick, <->] (axis cs:0,0.5) -- (axis cs:3.3,0.5) node[midway,below] {$tREFI8$}; +%\draw[thick, <->] (axis cs:4.7,0.5) -- (axis cs:6,0.5) node[midway,below] {$tRFC_{pb}$}; +%\draw[thick, <->] (axis cs:3.7,0.5) -- (axis cs:7,0.5) node[midway,below] {$tREFI8$}; +%\draw[thick, <->] (axis cs:7.7,0.5) -- (axis cs:9,0.5) node[midway,below] {$tRFC_{pb}$}; +%\draw[thick, <->] (axis cs:7.4,0.5) -- (axis cs:10,0.5) node[midway,below] {$tREFI8$}; +\end{axis} +% Legend +\begin{scope} + \node[draw, pattern=north east lines, pattern color=green!50] at (0.0,-1) {~}; + \node[anchor=west] at (0.2,-1) {Background Energy}; + \node[draw,pattern=north east lines, pattern color=red!50] at (3.8,-1) {~}; + \node[anchor=west] at (4.0,-1) {Burst Refresh Energy}; + \node[draw,pattern=north west lines, pattern color=blue!50] at (0.0,-1.5) {~}; + \node[anchor=west] at (0.2,-1.5) {Average Refresh Energy}; +\end{scope} +%\draw[pattern=north east lines, pattern color=red!50, draw=none] (axis cs:1,1) rectangle (axis cs:2,6); +%\draw[pattern=north east lines, pattern color=red!50, draw=none] (axis cs:4,1) rectangle (axis cs:5,6); +%\draw[pattern=north east lines, pattern color=green!50, draw=none] (axis cs:0,0) rectangle (axis cs:6,1); +% +\end{tikzpicture}% \ No newline at end of file diff --git a/img/switching_signals.tex b/img/switching_signals.tex new file mode 100644 index 0000000..c93288a --- /dev/null +++ b/img/switching_signals.tex @@ -0,0 +1,26 @@ +\begin{tikztimingtable} [timing/d/background/.style={fill=white}, + timing/lslope=0.2, xscale=1.80, yscale=1.0,] + {\small \rmfamily CK\_t} & + L H L H L H L H L H L H L H L H L\\ + {\small \rmfamily S1} & + 0.5L H H L L H H L L H H L L H H L L 0.5H\\ + {\small \rmfamily S2} & + 0.5L H L H L H L H H H H H L L L L L 0.5H\\ + \extracode + \begin{pgfonlayer}{background} + + %\timemeasuup{P1}{P5}{-4.0}{\small $t_{RC} = t_{RAS} + t_{RP}$} + %\timemeasuup{P3}{P6}{-2.0}{\small $t_{BURST}$} + %\timemeasure{P2}{P6}{ 5.0}{\tiny $t_{RTP}$} + %\timemeasure{P2}{P3}{ 7.0}{\small $t_{CL}$} + %\timemeasure{P1}{P4}{ 9.0}{\small $t_{RAS}$} + %\timemeasure{P4}{P5}{ 9.0}{\small $t_{RP}$} + %\timemeasure{P7}{P4}{11.0}{\small $t_{RTP}$} + %\timemeasuup{P2}{P7}{-2.0}{\small $t_{CCD}$} + + % Add vertical lines + \begin{scope}[semitransparent,semithick] + \vertlines[gray]{1.1,2.1,...,16.1} + \end{scope} + \end{pgfonlayer} +\end{tikztimingtable}% \ No newline at end of file