We use cookies to distinguish you from other users and to provide you with a better experience on our websites. Close this message to accept cookies or find out how to manage your cookie settings.
To save content items to your account,
please confirm that you agree to abide by our usage policies.
If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account.
Find out more about saving content to .
To save content items to your Kindle, first ensure [email protected]
is added to your Approved Personal Document E-mail List under your Personal Document Settings
on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part
of your Kindle email address below.
Find out more about saving to your Kindle.
Note you can select to save to either the @free.kindle.com or @kindle.com variations.
‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi.
‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.
Teaching fundamental design concepts and the challenges of emerging technology, this textbook prepares students for a career designing the computer systems of the future. Self-contained yet concise, the material can be taught in a single semester, making it perfect for use in senior undergraduate and graduate computer architecture courses. This edition has a more streamlined structure, with the reliability and other technology background sections now included in the appendix. New material includes a chapter on GPUs, providing a comprehensive overview of their microarchitectures; sections focusing on new memory technologies and memory interfaces, which are key to unlocking the potential of parallel computing systems; deeper coverage of memory hierarchies including DRAM architectures, compression in memory hierarchies and an up-to-date coverage of prefetching. Practical examples demonstrate concrete applications of definitions, while the simple models and codes used throughout ensure the material is accessible to a broad range of computer engineering/science students.
Master the art of data converter design with this definitive textbook, a detailed and accessible introduction ideal for students and practicing engineers. Razavi's distinctive and intuitive pedagogical approach, building up from elementary components to complex systems. Step-by-step transistor-level designs and simulations offer a practical hands-on understanding of key design concepts. Comprehensive coverage of essential topics including sampling circuits, comparator design, digital-to-analog converters, flash topologies, SAR and pipelined architectures, time-interleaved converters, and oversampling systems. Over 250 examples pose thought-provoking questions, reinforcing core concepts and helping students develop confidence. Over 350 end-of-chapter homework problems to test student understanding, with solutions available for course instructors. Developed by leading author Behzad Razavi, and addressing all the principles and design concepts essential to today's engineers, this is the ideal text for senior undergraduate and graduate-level students and professional engineers who aspire to excel in data converter analysis and design.
This chapter explores the crucial alternative to traditional data processing methods, focusing on in-memory data processing. It discusses storing large volumes of data in DRAM for efficient and rapid data access, while using disk and SSD storage mainly for backup and archival purposes. The chapter sheds light on the benefits and significance of this approach, emphasizing its role in enabling efficient computing tasks. It also examines the implications of this shift for disk utilization, highlighting the transition towards using disk and SSD storage as secondary mediums, rather than primary data sources.
This chapter delves into the management of structured data using GPUs. It demonstrates the construction of a GPU-based SQL database engine, encompassing both hash-based and sorting-based relational operator algorithms. The chapter explores how complex SQL concepts like subqueries can be efficiently interacted with GPUs for optimal performance, offering insights into the advancements and potential of GPU computing in structured data management.
This opening chapter provides a historical perspective on the evolution of computing, tracing its journey from early computational methods to the emergence of networking and the advent of data-centric computing. The chapter sets out to inspire readers to develop a holistic understanding of the intricate interactions among hardware, software, and networking. It introduces the principle of hardware and software codesign as a critical approach in constructing efficient data management systems. The goal is to achieve high throughput and low latency in modern data processing, setting the stage for the detailed exploration that follows in subsequent chapters.
The concluding chapter consolidates the key learnings and projects future trends and emerging technologies in the dynamic field of data management and computing. It explores how the convergence of advanced hardware, sophisticated algorithms, and AI-driven solutions is shaping the next frontier of data management and computing. Emphasizing practical implications and future possibilities, this final chapter aims to equip readers with a comprehensive understanding and vision of how these integrated technologies will continue to transform the landscape of computing and data management.
This chapter delves into the transformative world of ray tracing, a technology reshaping computational graphics and data processing. It bridges the gap between advanced graphical rendering and general computational tasks, exploring how ray tracing hardware, originally designed for stunning visual effects, is now being harnessed for diverse applications beyond graphics. The chapter employs Nvidia GPU RT Cores and the OptiX programming framework as conduits to explain ray tracing’s fundamental concepts and practical implementations.
This chapter offers a comprehensive examination of main memory, considering both its architectural aspects and its critical role in systems software. The discussion includes the utilization of physical memory addresses as a linkage mechanism, connecting programs in virtual space to their corresponding execution spaces in the cache and main memory. The chapter also presents advancements in CPU and memory products, elucidating their relevance to memory management. Additionally, it introduces the concept of the OS buffer cache and the development of a key–value store at the user level, highlighting their significance in the broader context of data management systems.
Providing a comprehensive introduction to GPU programming and its application in data management, this chapter uses sorting algorithms as a case study. It explores how parallel programming and architecture-oriented performance tuning are integral to unlocking the full potential of GPUs as powerful computing devices. The chapter takes readers through the transformation process of a sequential bubble sorting algorithm into GPU-friendly bitonic sorting and odd–even merging sorting algorithms, illustrating the capabilities and advantages of GPU computing in data management.
Focusing on the intricate world of spatial data management, this chapter offers an in-depth analysis of how spatial data management tasks, specifically in the context of pathology imaging applications, are approached and optimized on traditional CPU-based computing platforms versus GPU-accelerated platforms. Employing a case-study methodology, the chapter not only delves into the specifics of these applications but also extrapolates broader methodologies and strategies for leveraging advanced hardware to enhance application performance.
Addressing the challenges associated with data movement within the memory hierarchy, this chapter explores solutions from both hardware and systems software perspectives. It places special emphasis on buffer management techniques aimed at optimizing data movement and reducing access latency. The chapter also delves into the significance of nonvolatile memory (NVM), particularly flash memory devices, and their role in mitigating access latency within the memory hierarchy. Readers gain insights into strategies employed to minimize data movement, enhancing overall memory performance, a critical aspect of efficient data management.
Delving into the foundational aspects of data management, this chapter explores the relationship between logical data formats and physical storage in computing systems. It discusses how logical abstractions in system software for data management interact with the physical placement of data. The chapter emphasizes the significance of designing storage data formats effectively to minimize unnecessary I/O traffic and network communications. By optimizing these formats, readers learn how to achieve efficient utilization of resources, leading to improved performance in data processing tasks. This sets a crucial foundation for understanding the broader concepts of data management throughout the book.
This guide illuminates the intricate relationship between data management, computer architecture, and system software. It traces the evolution of computing to today's data-centric focus and underscores the importance of hardware-software co-design in achieving efficient data processing systems with high throughput and low latency. The thorough coverage includes topics such as logical data formats, memory architecture, GPU programming, and the innovative use of ray tracing in computational tasks. Special emphasis is placed on minimizing data movement within memory hierarchies and optimizing data storage and retrieval. Tailored for professionals and students in computer science, this book combines theoretical foundations with practical applications, making it an indispensable resource for anyone wanting to master the synergies between data management and computing infrastructure.