Hardware/Firmware Interface Design
eBook - ePub

Hardware/Firmware Interface Design

Best Practices for Improving Embedded Systems Development

Gary Stringham

  1. 376 pagine
  2. English
  3. ePUB (disponibile sull'app)
  4. Disponibile su iOS e Android
eBook - ePub

Hardware/Firmware Interface Design

Best Practices for Improving Embedded Systems Development

Gary Stringham

Dettagli del libro
Anteprima del libro
Indice dei contenuti
Citazioni

Informazioni sul libro

Why care about hardware/firmware interaction? These interfaces are critical, a solid hardware design married with adaptive firmware can access all the capabilities of an application and overcome limitations caused by poor communication. For the first time, a book has come along that will help hardware engineers and firmware engineers work together to mitigate or eliminate problems that occur when hardware and firmware are not optimally compatible. Solving these issues will save time and money, getting products to market sooner to create more revenue.The principles and best practices presented in this book will prove to be a valuable resource for both hardware and firmware engineers. Topics include register layout, interrupts, timing and performance, aborts, and errors. Real world cases studies will help to solidify the principles and best practices with an aim towards cleaner designs, shorter schedules, and better implementation!

  • Reduce product development delays with the best practices in this book
  • Concepts apply to ASICs, ASSPs, SoCs, and FPGAs
  • Real-world examples and case studies highlight the good and bad of design processes

Domande frequenti

Come faccio ad annullare l'abbonamento?
È semplicissimo: basta accedere alla sezione Account nelle Impostazioni e cliccare su "Annulla abbonamento". Dopo la cancellazione, l'abbonamento rimarrà attivo per il periodo rimanente già pagato. Per maggiori informazioni, clicca qui
È possibile scaricare libri? Se sì, come?
Al momento è possibile scaricare tramite l'app tutti i nostri libri ePub mobile-friendly. Anche la maggior parte dei nostri PDF è scaricabile e stiamo lavorando per rendere disponibile quanto prima il download di tutti gli altri file. Per maggiori informazioni, clicca qui
Che differenza c'è tra i piani?
Entrambi i piani ti danno accesso illimitato alla libreria e a tutte le funzionalità di Perlego. Le uniche differenze sono il prezzo e il periodo di abbonamento: con il piano annuale risparmierai circa il 30% rispetto a 12 rate con quello mensile.
Cos'è Perlego?
Perlego è un servizio di abbonamento a testi accademici, che ti permette di accedere a un'intera libreria online a un prezzo inferiore rispetto a quello che pagheresti per acquistare un singolo libro al mese. Con oltre 1 milione di testi suddivisi in più di 1.000 categorie, troverai sicuramente ciò che fa per te! Per maggiori informazioni, clicca qui.
Perlego supporta la sintesi vocale?
Cerca l'icona Sintesi vocale nel prossimo libro che leggerai per verificare se è possibile riprodurre l'audio. Questo strumento permette di leggere il testo a voce alta, evidenziandolo man mano che la lettura procede. Puoi aumentare o diminuire la velocità della sintesi vocale, oppure sospendere la riproduzione. Per maggiori informazioni, clicca qui.
Hardware/Firmware Interface Design è disponibile online in formato PDF/ePub?
Sì, puoi accedere a Hardware/Firmware Interface Design di Gary Stringham in formato PDF e/o ePub, così come ad altri libri molto apprezzati nelle sezioni relative a Computer Science e Systems Architecture. Scopri oltre 1 milione di libri disponibili nel nostro catalogo.

Informazioni

Editore
Newnes
Anno
2009
ISBN
9780080880198
CHAPTER 1. Introduction
Hardware and firmware engineering design teams often run into problems and conflicts when trying to work together. They come from different development environments, have different toolsets, and use different terminology. Often they are in different locations within the same company or work for different companies. The two teams have to work together but often have conflicting differences in procedures and methods. Since their resulting hardware and firmware work has to integrate successfully to produce a product, it is imperative that the hardware/firmware interface—including people, technical disciplines, tools, and technology—be designed properly.
Because of the nature of embedded systems, hardware design will always precede firmware design. While some tools and techniques are available to permit a more parallel effort, in the end, the hardware must be created before the firmware team can carry out its final development and testing efforts. Although a significant amount of effort is expended to ensure correct design at the hardware/firmware interface, problems will still appear when hardware and firmware are integrated as a system.
Problems found in firmware are relatively easy to fix compared to problems found in hardware. Respinning an application-specific integrated circuit (ASIC) 1 can take up to 4 months and cost several million dollars, depending on the process node at which the chip is being developed, such as 90 nm, 65 nm, and so on. So pressure is put on the firmware teams to try to work around any hardware problems to avoid the delay and cost. As Jack Ganssle, an embedded systems expert, humorously stated, “Quality is firmware's fault—because it is too late to fix it in hardware.”
1For the purposes of this book, the term ASIC will also be taken to encompass application-specific standard products (ASSPs), system on chips (SoCs), and field-programmable gate arrays (FPGAs). (See also the definitions later in this chapter.)
Chips are expensive and hard to design and build; getting them “right” is a business necessity. Designing chips for firmware engineers is a key enabler. This book provides a rigorous study of common sense approaches to chip design based on years of experience in writing firmware for chips. It captures practical and sensible ideas and applies structure and rigor to the design. The goal of the book is to provide principles and best practices that allow hardware and firmware engineers to improve the development and integration of embedded systems. This book is most useful during the development phase of the product, specifically during the development of both the chip and the firmware for a product.
This first chapter provides background into the subject matter and lays the groundwork for the remainder of the book. The second chapter discusses seven principles of hardware/firmware interface design. The rest of the book contains over 300 best practices. Obviously the list of best practices presented here cannot be an exhaustive one in this area. As you read through the following chapters, you will think about best practices that you use and will get ideas for others. Write them down so you can apply them to your work and share them with others.

1.1. What Is the Hardware/Firmware Interface?

The hardware/firmware interface is the junction where hardware and firmware meet and communicate with each other. On the hardware side, it is a collection of addressable registers that are accessible to firmware via reads and writes. This includes the interrupts that notify firmware of events. On the firmware side, it is the device drivers or low-level software that controls the hardware by writing values to registers, interprets the information read from the registers, and responds to interrupt requests from the hardware. Of course, there is more to hardware than registers and interrupts, and more to firmware than device drivers, but this is the interface between the two and where engineers on both sides must be concerned to achieve successful integration.
The terms “hardware” and “firmware” vary in scope and meaning in the industry, so let's define how they are used in this book.

1.1.1. What Are Hardware, Chips, and Blocks?

In the electrical engineering context, the term “hardware” includes all electronic circuits in an embedded product, including printed circuit boards, passives like resistors and capacitors, and chips. It can also refer to nonelectrical, mechanical components, such as bolts, spacers, and housing/enclosures. Meanwhile, the term “chips” includes any devices made from silicon or other semiconducting materials containing multiple transistors that implement digital or analog functions. They can be simple, single-function devices or complex, multi-function devices containing processors, memory, interfaces, and other functional circuitry.
For the purposes of this book, “hardware” and “chips” refers to just a subset of devices (such as ASICs and FPGAs): specifically, the components that interact with firmware via registers and interrupts. It does not include microprocessors, microcontrollers, or memory. Furthermore, “hardware” and “chips” are used almost interchangeably in this book; for example, “The hardware team designs the chips.”
A “chip” will contain one or more functional “blocks,” such as a USB communications function, an MPEG compressor, and a memory controller. There may be more than one instantiation (copy) of a particular block, such as two UARTs. Blocks within a chip typically communicate with each other and with external memory via a shared bus. Each block is typically designed as an individual unit. When a new chip is designed, it may comprise a mixture of blocks used in previous designs and new blocks.
Within the scope of “chips,” are several general families of integrated circuits, each with their own minor differences with regard to the context of this book, but the concepts generally apply to all.

ASICs

ASICs (application-specific integrated circuits) are designed to be used in a specific product of a specific brand. It contains a customized mix of standard and/or proprietary blocks. ASICs are high-volume chips optimized for power, performance, and cost. This means that there are many different ASICs in use, each with its own hardware and firmware design teams. These hardware and firmware teams continue to work together as they produce variations of the ASICs for various product families and multiple generations of the products.
Both of the teams may be working for the company producing the product; alternatively, one or both of the teams might be working for other companies hired to do the work. Whatever the case, close coupling between the teams must still be present so as to provide the hardware team with more opportunities to make changes and improvements because they can collaborate with the firmware team in advance.

ASSPs

ASSPs (application-specific standard product) are like ASICs except that they are designed for a specific application area and are sold to more than one customer—hence the name “standard product.” By contrast, an ASIC is designed and built to order for a specific customer. ASSPs have only standard functionality, allowing them to be used in a variety of embedded systems by a variety of companies. This means that one company generates an ASSP, while potentially many companies generate firmware for that ASSP. Device drivers are typically needed for a variety of operating systems (OSs) and versions; these device drivers will be specific to the firmware of the target embedded system. Thus many different firmware teams from multiple companies are typically involved. The firmware teams generally do not have ready access to the hardware team that designed the ASSP. There is no one-to-one relationship as found in ASIC teams.
This puts the burden on the hardw...

Indice dei contenuti

  1. Cover image
  2. Table of Contents
  3. Copyright
  4. Preface
  5. CHAPTER 1. Introduction
  6. CHAPTER 2. Principles
  7. CHAPTER 3. Collaboration
  8. CHAPTER 4. Planning
  9. CHAPTER 5. Documentation
  10. CHAPTER 6. Superblock
  11. CHAPTER 7. Design
  12. CHAPTER 8. Registers
  13. CHAPTER 9. Interrupts
  14. CHAPTER 10. Aborts, etc.
  15. CHAPTER 11. Hooks
  16. CHAPTER 12. Conclusion
  17. Appendix A. Best Practices
  18. Appendix B. Bicycle Controller Specification
  19. Glossary
  20. Index
Stili delle citazioni per Hardware/Firmware Interface Design

APA 6 Citation

Stringham, G. (2009). Hardware/Firmware Interface Design ([edition unavailable]). Elsevier Science. Retrieved from https://www.perlego.com/book/1809684/hardwarefirmware-interface-design-best-practices-for-improving-embedded-systems-development-pdf (Original work published 2009)

Chicago Citation

Stringham, Gary. (2009) 2009. Hardware/Firmware Interface Design. [Edition unavailable]. Elsevier Science. https://www.perlego.com/book/1809684/hardwarefirmware-interface-design-best-practices-for-improving-embedded-systems-development-pdf.

Harvard Citation

Stringham, G. (2009) Hardware/Firmware Interface Design. [edition unavailable]. Elsevier Science. Available at: https://www.perlego.com/book/1809684/hardwarefirmware-interface-design-best-practices-for-improving-embedded-systems-development-pdf (Accessed: 15 October 2022).

MLA 7 Citation

Stringham, Gary. Hardware/Firmware Interface Design. [edition unavailable]. Elsevier Science, 2009. Web. 15 Oct. 2022.