English | 2020 | ISBN: 978-1838984397 | 338 Pages | PDF, EPUB, MOBI | 41 MBGain a thorough understanding of current and future processor architectures to help you design computer systems and develop complex software applications across a variety of domains. A computer’s architecture is the result of the decisions made by a designer while developing a digital system to meet user needs. This book enables software developers, computer engineers, system designers, and others to understand how modern computer systems work from the low level of transistor switching to the macro view of collaborating multiprocessor servers. With the information in this book, software developers can achieve unique insight into the internal behavior of processors executing the code they develop in high-level languages. By understanding these details, such as the size of and interactions among the various caches within modern processors, developers can create more efficient and scalable software systems. The book begins with an introduction to key components such as transistors, logic gates, sequential circuits, and instruction sets. You’ll see how these components are combined to produce the elements of a processor. You will learn the techniques employed in virtual machine implementations. You will also learn details of modern processor architectures and instruction sets including x86, x64, ARM, and RISC-V. You will even see how to implement a RISC-V processor in a low-cost FPGA board. By the end of this book, you will have a thorough understanding of modern processor and computer architectures. What you will learn
- Learn about transistor technology and digital circuit principles.
- Explore the functional elements of computer processors.
- Understand the interactions between processor instructions and peripheral devices.
- Learn about speed optimizations including pipelining and superscalar execution.
- Get an understanding of processor extensions such as floating-point units.
- Implement a complete RISC-V processor in a low-cost FPGA.
- Explore techniques of virtual machine implementation