Sign In Start Free Trial
Account

Add to playlist

Create a Playlist

Modal Close icon
You need to login to use this feature.
  • Book Overview & Buying Modern Computer Architecture and Organization
  • Table Of Contents Toc
Modern Computer Architecture and Organization

Modern Computer Architecture and Organization - Third Edition

By : Jim Ledin
5 (1)
close
close
Modern Computer Architecture and Organization

Modern Computer Architecture and Organization

5 (1)
By: Jim Ledin

Overview of this book

Computer architecture now extends far beyond CPUs, forming the foundation of cloud platforms, AI systems, cybersecurity solutions, and emerging computing technologies. Modern Computer Architecture and Organization, Third Edition, provides a clear, end-to-end understanding of how today’s computer systems are built and why architectural decisions matter more than ever. You’ll begin with the fundamentals of digital logic, processor elements, memory systems, and the hardware–software interface, building a strong grounding that remains essential for every architect and systems engineer. Next, the book explores modern processor and memory architectures, performance-enhancing techniques, virtualization, and mainstream instruction sets, including x86, ARM, and an in-depth treatment of RISC-V. New and significantly expanded chapters extend this foundation into modern computing domains, including AI and large language model (LLM) computing platforms, GPUs, cloud-scale systems, confidential and security-focused architectures, blockchain and Bitcoin mining systems, self-driving vehicle architectures, and future directions such as quantum computing. This edition reflects today’s AI-driven, cloud-centric, security-aware computing landscape while remaining true to the classical principles that continue to underpin modern computer systems.
Table of Contents (28 chapters)
close
close
Lock Free Chapter
1
Part 1: Fundamentals of Computer Architecture
8
Part 2: Processor Architectures and Instruction Sets
15
Part 3: Computer System Architectures
23
Part 4: Appendices
27
Index

Preface

I am pleased to present the updated and expanded third edition of Modern Computer Architecture and Organization. Reader comments and questions from the first and second editions have provided valuable insights that helped shape this new edition. Thank you to everyone who took the time to offer feedback!

This edition updates technologies that have advanced since the publication of the second edition and adds substantial new content on critical areas of computer architecture. New chapters provide detailed analyses of Graphics Processing Units (GPUs) and Large Language Models (LLMs).

Over the last few years, the explosive growth of artificial intelligence (AI) has led to drastic shifts in the direction of large-scale computing architecture. The expansion of AI-focused datacenters across the United States and around the world has led to the allocation of enormous quantities of capital, electricity, and water resources to the construction and operation of these facilities.

The two new chapters in this edition provide detailed explanations of how these AI systems operate, beginning at the lowest levels of GPU parallel processing. We examine the detailed processing requirements of an example LLM (we analyze GPT-2, which has a structure that substantially represents current frontier LLMs) and datacenter-scale requirements for physical space, electrical power, and cooling systems.

Chapter 10, Graphics Processing Units, examines modern GPUs both as engines for generating synthetic video scenes and as accelerators for AI training and inference. This new chapter explores the hardware architecture of a modern GPU, from its high-level subsystems that perform data distribution and processor scheduling to its deeply parallel, low-level instruction processing.

Chapter 15, Large Language Model Computing Architectures, explores computing architectures for advanced artificial intelligence systems, specifically large language models. We begin by analyzing early LLM design, using GPT-2 as a case study to illustrate model structure and processing requirements. The chapter examines the computational demands for LLM training and inference, concluding with an analysis of the datacenter infrastructure underpinning today's largest and most sophisticated AI models.

Continuing the tradition of the first two editions, each new chapter contains end-of-chapter exercises designed to deepen your understanding of the material and reinforce key concepts.

I hope you find this updated edition as rewarding to read as it was to develop.

Preface to the second edition

Welcome to the second edition of Modern Computer Architecture and Organization. It has been my pleasure to receive a great deal of feedback and comments from readers of the first edition. Of course, I appreciate all input from readers, especially those who bring any errors and omissions to my attention.

This edition includes updates on technologies that have advanced since the publication of the first edition and adds significant new content in several important areas related to computer architecture. New chapters cover the topics of cybersecurity, blockchain and bitcoin mining, and self-driving vehicle computing architectures.

While the security of computing systems has always been important, recent exploitations of major vulnerabilities in widely used operating systems and applications have resulted in substantial negative impacts in countries around the world. These cyberattacks have accentuated the need for computer system designers to incorporate cybersecurity as a foundational element of system architecture.

Chapter 14, Cybersecurity and Confidential Computing Architectures, focuses on the security needs of critical application areas like national security systems and financial transaction processing. These systems must be resilient against a broad range of cybersecurity threats, including malicious code, covert channel attacks, and attacks enabled by physical access to computing hardware. Topics addressed in this chapter include cybersecurity threats, encryption, digital signatures, and secure hardware and software design.

The explosion of interest in cryptocurrencies and their growing acceptance by mainstream financial institutions and retailers demonstrates that this area of computing is on a continued growth path. This edition adds a chapter on blockchain and the computational demands of bitcoin mining.

Chapter 15, Blockchain and Bitcoin Mining Architectures, introduces the concepts associated with blockchain, a public, cryptographically secured ledger recording a sequence of transactions. We continue with an overview of the process of bitcoin mining, which appends transactions to the bitcoin blockchain and rewards those who complete this task with payment in the form of bitcoin. Bitcoin processing requires high-performance computing hardware, which is illustrated in terms of a current-generation bitcoin mining computer architecture.

The continuing growth in the number of automobiles with partial or full self-driving capabilities demands robust, highly capable computing systems that meet the requirements for safe autonomous vehicle operation on public roadways.

Chapter 16, Self-Driving Vehicle Architectures, describes the capabilities required in self-navigating vehicle processing architectures. It begins with a discussion of the requirements for ensuring the safety of the autonomous vehicle and its occupants, as well as for other vehicles, pedestrians, and stationary objects. We continue with a discussion of the types of sensors and data a self-driving vehicle receives as input while driving and a description of the types of processing required for effective vehicle control. The chapter concludes with an overview of an example self-driving computer architecture.

As in the other chapters, each of the three new chapters contains end-of-chapter exercises designed to broaden your understanding of the chapter topic and cement the information from the chapter within your knowledge base.

I hope you enjoy this updated edition as much as I have enjoyed developing it. Happy reading!

Preface to the first edition

This book presents the key technologies and components employed in modern processor and computer architectures and discusses how various architectural decisions result in computer configurations optimized for specific needs.

To understate the situation quite drastically, modern computers are complicated devices. Yet, when viewed in a hierarchical manner, the functions of each level of complexity become clear. We will cover a great many topics in these chapters and will only have space to explore each of them to a limited degree. My goal is to provide a coherent introduction to each important technology and subsystem you might find in a modern computing device and explain its relationship to other system components.

I will not be providing a lengthy list of references for further reading. The internet is your friend in this regard. If you can manage to bypass the clamor of political and social media argumentation on the internet, you will find yourself in an enormous, cool, quiet library containing a vast quantity of accumulated human knowledge. Learn to use the advanced features of your favorite search engine. Also, learn to differentiate high-quality information from uninformed opinion. Check multiple sources if you have any doubts about the information you're finding. Consider the source: if you are looking for information about an Intel processor, search for documentation published by Intel.

By the end of this book, you will have gained a strong grasp of the computer architectures currently used in a wide variety of digital systems. You will also have developed an understanding of the relevant trends in architectural technology currently underway, as well as some possible disruptive advances in the coming years that may drastically influence the architectural development of computing systems.

Who this book is for

This book is intended for software developers, computer engineering students, system designers, computer science professionals, reverse engineers, and anyone else seeking to understand the architecture and design principles underlying all types of modern computer systems, from tiny embedded devices to smartphones to warehouse-sized cloud server farms. Readers will also explore the directions these technologies are likely to take in the coming years. A general understanding of computer processors is helpful, but is not required.

What this book covers

The information in this book is presented in the following sequence:

Chapter 1, Introducing Computer Architecture, begins with a brief history of automated computing devices and describes the significant technological advances that drove leaps in capability. This is followed by a discussion of Moore's law, with an assessment of its applicability over previous decades and the implications for the future. The basic concepts of computer architecture are introduced in the context of the 6502 microprocessor.

Chapter 2, Digital Logic, introduces transistors as switching elements and explains their use in constructing logic gates. We will then see how flip-flops and registers are developed by combining simple gates. The concept of sequential logic, meaning logic that contains state information, is introduced, and the chapter ends with a discussion of clocked digital circuits.

Chapter 3, Processor Elements, begins with a conceptual description of a generic processor. We will examine the concepts of the instruction set, register set, and instruction loading, decoding, execution, and sequencing. Memory load and store operations are also discussed. The chapter includes a description of branching instructions and their use in looping and conditional processing. Some practical considerations are introduced that lead to the necessity for interrupt processing and I/O operations.

Chapter 4, Computer System Components, discusses computer memory and its interface to the processor, including multilevel caching. I/O requirements, including interrupt handling, buffering, and dedicated I/O processors, are described. We will discuss some specific requirements for I/O devices, including the keyboard and mouse, the video display, and the network interface. The chapter ends with descriptive examples of these components in modern computer applications, including smart mobile devices, personal computers, gaming systems, cloud servers, and dedicated machine learning systems.

Chapter 5, Hardware-Software Interface, discusses the implementation of the high-level services a computer operating system must provide, including disk I/O, network communications, and interactions with users. This chapter describes the software layers that implement these features, starting at the level of the processor instruction set and registers. Operating system functions, including booting, multiprocessing, and multithreading, are also described.

Chapter 6, Specialized Computing Domains, explores domains of computing that tend to be less directly visible to most users, including real-time systems and digital signal processing. We will discuss the unique requirements associated with these domains and look at examples of modern devices that implement these features.

Chapter 7, Processor and Memory Architectures, takes an in-depth look at modern processor architectures, including the von Neumann, Harvard, and modified Harvard variants. The chapter discusses the implementation of paged virtual memory. The practical implementation of memory management functionality within the computer architecture is introduced, and the functions of the memory management unit are described.

Chapter 8, Performance-Enhancing Techniques, discusses a number of performance-enhancing techniques used routinely to reach peak execution speed in real-world computer systems. The most important techniques for improving system performance, including the use of cache memory, instruction pipelining, instruction parallelism, and SIMD processing, are the subjects of this chapter.

Chapter 9, Specialized Processor Extensions, focuses on extensions commonly implemented at the processor instruction set level to provide additional system capabilities beyond generic data processing requirements. The extensions presented include privileged processor modes, floating-point mathematics, power management, and system security management.

Chapter 10, Graphics Processing Units, examines modern GPUs both as engines for generating synthetic video scenes and as accelerators for AI training and inference. The chapter describes the hardware architecture of a current-generation GPU and outlines its high-level mechanisms for data distribution and processor scheduling, as well as its low-level instruction processing.

Chapter 11, Modern Processor Architectures and Instruction Sets, examines the architectures and instruction set features of modern processor designs, including the x86, x64, and ARM processors. One challenge that arises when producing a family of processors over several decades is the need to maintain backward compatibility with code written for earlier-generation processors. The need for legacy support tends to increase the complexity of the later-generation processors. This chapter will examine some of the attributes of these processor architectures that result from supporting legacy requirements.

Chapter 12, The RISC-V Architecture and Instruction Set, introduces the exciting new RISC-V (pronounced risk five) processor architecture and its instruction set. RISC-V is a completely open source, free-to-use specification for a reduced instruction set computer architecture. A complete instruction set specification has been released, and a number of hardware implementations of this architecture are currently available. Work is ongoing to develop specifications for a number of instruction set extensions. This chapter covers the features and variants available in the RISC-V architecture and introduces the RISC-V instruction set. We will also discuss the applications of the RISC-V architecture in mobile devices, personal computers, and servers.

Chapter 13, Processor Virtualization, introduces the concepts involved in processor virtualization and explains the many benefits resulting from the use of virtualization. The chapter includes examples of virtualization based on open source tools and operating systems. These tools enable the execution of instruction-set-accurate representations of various computer architectures and operating systems on a general-purpose computer. We will also discuss the benefits of virtualization in the development and deployment of real-world software applications.

Chapter 14, Domain-Specific Computer Architectures, brings together the topics discussed in previous chapters to develop an approach for architecting a computer system design to meet unique user requirements. We will discuss some specific application categories, including mobile devices, personal computers, gaming systems, internet search engines, and neural networks.

Chapter 15, Large Language Model Computing Architectures, explores computing architectures used for advanced artificial intelligence systems, specifically large language models. We begin by analyzing early LLM design, using GPT-2 as a case study to illustrate model structure and processing requirements. The chapter examines the computational demands for both LLM training and inference, concluding with an analysis of the datacenter infrastructure underpinning today's largest and most sophisticated AI models.

Chapter 16, Cybersecurity and Confidential Computing Architectures, introduces computing architectures suitable for applications that require exceptional security. Critical application areas, such as national security systems and financial transaction processing, demand this high level of protection. These systems must be resilient against a broad range of cybersecurity threats, including malicious code, covert channel attacks, and attacks enabled by physical access to computing hardware.

Chapter 17, Blockchain and Bitcoin Mining Architectures, begins with a brief introduction to blockchain, a public, cryptographically secure ledger that records a sequence of transactions. We continue with an overview of the bitcoin mining process, which appends transactions to the bitcoin blockchain and rewards miners with bitcoin. Bitcoin mining requires high-performance computing hardware, as illustrated by the architecture of a current-generation bitcoin mining computer.

Chapter 18, Self-Driving Vehicle Architectures, presents the capabilities required in self-navigating vehicle processing architectures. The chapter begins with a discussion of requirements to ensure the safety of an autonomous vehicle and its occupants, as well as that of other vehicles, pedestrians, and stationary objects. We continue with an introduction to the types of sensors and input data a self-driving vehicle relies upon while driving, followed by a description of the types of processing required for effective vehicle control. The chapter concludes with an architectural overview of a modern self-driving computer.

Chapter 19, Quantum Computing and Other Future Directions for Computer Architectures, looks at the road ahead for computer architectures. This chapter reviews the significant advances and ongoing trends that have resulted in the current state of computer architectures, and extrapolates these trends into possible future directions. Potentially disruptive technologies are discussed that could alter the path of future computer architectures. In closing, I will propose some approaches for professional development for the computer architect that should result in a future-tolerant skill set.

Appendix A, contains the answers to all the exercises in the book.

To get the most out of this book

Each chapter in this book includes a set of exercises at the end. To get the most from the book, and to cement some of the more challenging concepts in your mind, I recommend you try to work through each exercise. Complete solutions to all exercises are provided in the book and are available online at https://github.com/PacktPublishing/Modern-Computer-Architecture-and-Organization-Third-Edition.

In case there is a need to update the code examples and answers to the exercises, updates will appear at this GitHub repository.

Download the example code files

We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/Modern-Computer-Architecture-and-Organization-Third-Edition. Check them out!

Conventions used

There are a number of text conventions used throughout this book.

Code in text: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an example: "Subtraction using the SBC instruction tends to be a bit more confusing to novice 6502 assembly language programmers."

A block of code is set as follows:

; Add four bytes together using immediate addressing mode
LDA #$04
CLC
ADC #$03
ADC #$02
ADC #$01

Any command-line input or output is written as follows:

C:\>bcdedit
Windows Boot Manager
--------------------
identifier {bootmgr}

Bold: Indicates a new term, an important word, or words that you see onscreen. Here is an example: "Because there are now four sets, the Set field in the physical address reduces to two bits and the Tag field increases to 24 bits."

TIPS OR IMPORTANT NOTES

Appear like this.

Get in touch

Feedback from our readers is always welcome.

General feedback: If you have questions about any aspect of this book or have any general feedback, please email us at customercare@packt.com and mention the book's title in the subject of your message.

Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you have found a mistake in this book, we would be grateful if you reported this to us. Please visit http://www.packt.com/submit-errata, click Submit Errata, and fill in the form.

Piracy: If you come across any illegal copies of our works in any form on the internet, we would be grateful if you would provide us with the location address or website name. Please contact us at [email protected] with a link to the material.

If you are interested in becoming an author: If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, please visit http://authors.packt.com/.

Join us on Discord!

Read this book alongside other users, developers, experts, and the author himself.

Ask questions, provide solutions to other readers, chat with the authors via Ask Me Anything sessions, and much more. Scan the QR or visit the link to join the community.

Image 1

https://packt.link/deep-engineering

CONTINUE READING
83
Tech Concepts
36
Programming languages
73
Tech Tools
Icon Unlimited access to the largest independent learning library in tech of over 8,000 expert-authored tech books and videos.
Icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Icon 50+ new titles added per month and exclusive early access to books as they are being written.
Modern Computer Architecture and Organization
notes
bookmark Notes and Bookmarks search Search in title playlist Add to playlist download Download options font-size Font size

Change the font size

margin-width Margin width

Change margin width

day-mode Day/Sepia/Night Modes

Change background colour

Close icon Search
Country selected

Close icon Your notes and bookmarks

Confirmation

Modal Close icon
claim successful

Buy this book with your credits?

Modal Close icon
Are you sure you want to buy this book with one of your credits?
Close
YES, BUY

Submit Your Feedback

Modal Close icon
Modal Close icon
Modal Close icon