Computer System Design - Michael J. Flynn - E-Book

Computer System Design E-Book

Michael J. Flynn

0,0
79,99 €

oder
-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

The next generation of computer system designers will be less concerned about details of processors and memories, and more concerned about the elements of a system tailored to particular applications. These designers will have a fundamental knowledge of processors and other elements in the system, but the success of their design will depend on the skills in making system-level tradeoffs that optimize the cost, performance and other attributes to meet application requirements. This book provides a new treatment of computer system design, particularly for System-on-Chip (SOC), which addresses the issues mentioned above. It begins with a global introduction, from the high-level view to the lowest common denominator (the chip itself), then moves on to the three main building blocks of an SOC (processor, memory, and interconnect). Next is an overview of what makes SOC unique (its customization ability and the applications that drive it). The final chapter presents future challenges for system design and SOC possibilities.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 484

Veröffentlichungsjahr: 2011

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Table of Contents

Cover

Title page

Copyright page

PREFACE

LIST OF ABBREVIATIONS AND ACRONYMS

1  Introduction to the Systems Approach

1.1 SYSTEM ARCHITECTURE: AN OVERVIEW

1.2 COMPONENTS OF THE SYSTEM: PROCESSORS, MEMORIES, AND INTERCONNECTS

1.3 HARDWARE AND SOFTWARE: PROGRAMMABILITY VERSUS PERFORMANCE

1.4 PROCESSOR ARCHITECTURES

1.5 MEMORY AND ADDRESSING

1.6 SYSTEM-LEVEL INTERCONNECTION

1.7 AN APPROACH FOR SOC DESIGN

1.8 SYSTEM ARCHITECTURE AND COMPLEXITY

1.9 PRODUCT ECONOMICS AND IMPLICATIONS FOR SOC

1.10 DEALING WITH DESIGN COMPLEXITY

1.11 CONCLUSIONS

2  Chip Basics: Time, Area, Power, Reliability, and Configurability

2.1 INTRODUCTION

2.2 CYCLE TIME

2.3 DIE AREA AND COST

2.4 IDEAL AND PRACTICAL SCALING

2.5 POWER

2.6 AREA–TIME–POWER TRADE-OFFS IN PROCESSOR DESIGN

2.7 RELIABILITY

2.8 CONFIGURABILITY

2.9 CONCLUSION

3  Processors

3.1 INTRODUCTION

3.2 PROCESSOR SELECTION FOR SOC

3.3 BASIC CONCEPTS IN PROCESSOR ARCHITECTURE

3.4 BASIC CONCEPTS IN PROCESSOR MICROARCHITECTURE

3.5 BASIC ELEMENTS IN INSTRUCTION HANDLING

3.6 BUFFERS: MINIMIZING PIPELINE DELAYS

3.7 BRANCHES: REDUCING THE COST OF BRANCHES

3.8 MORE ROBUST PROCESSORS: VECTOR, VERY LONG INSTRUCTION WORD (VLIW), AND SUPERSCALAR

3.9 VECTOR PROCESSORS AND VECTOR INSTRUCTION EXTENSIONS

3.10 VLIW PROCESSORS

3.11 SUPERSCALAR PROCESSORS

3.12 PROCESSOR EVOLUTION AND TWO EXAMPLES

3.13 CONCLUSIONS

4  Memory Design: System-on-Chip and Board-Based Systems

4.1 INTRODUCTION

4.2 OVERVIEW

4.3 SCRATCHPADS AND CACHE MEMORY

4.4 BASIC NOTIONS

4.5 CACHE ORGANIZATION

4.6 CACHE DATA

4.7 WRITE POLICIES

4.8 STRATEGIES FOR LINE REPLACEMENT AT MISS TIME

4.9 OTHER TYPES OF CACHE

4.10 SPLIT I- AND D-CACHES AND THE EFFECT OF CODE DENSITY

4.11 MULTILEVEL CACHES

4.12 VIRTUAL-TO-REAL TRANSLATION

4.13 SOC (ON-DIE) MEMORY SYSTEMS

4.14 BOARD-BASED (OFF-DIE) MEMORY SYSTEMS

4.15 SIMPLE DRAM AND THE MEMORY ARRAY

4.16 MODELS OF SIMPLE PROCESSOR–MEMORY INTERACTION

4.17 CONCLUSIONS

5  Interconnect

5.1 INTRODUCTION

5.2 OVERVIEW: INTERCONNECT ARCHITECTURES

5.3 BUS: BASIC ARCHITECTURE

5.4 SOC STANDARD BUSES

5.5 ANALYTIC BUS MODELS

5.6 BEYOND THE BUS: NOC WITH SWITCH INTERCONNECTS

5.7 SOME NOC SWITCH EXAMPLES

5.8 LAYERED ARCHITECTURE AND NETWORK INTERFACE UNIT

5.9 EVALUATING INTERCONNECT NETWORKS

5.10 CONCLUSIONS

6  Customization and Configurability

6.1 INTRODUCTION

6.2 ESTIMATING EFFECTIVENESS OF CUSTOMIZATION

6.3 SOC CUSTOMIZATION: AN OVERVIEW

6.4 CUSTOMIZING INSTRUCTION PROCESSORS

6.5 RECONFIGURABLE TECHNOLOGIES

6.6 MAPPING DESIGNS ONTO RECONFIGURABLE DEVICES

6.7 INSTANCE-SPECIFIC DESIGN

6.8 CUSTOMIZABLE SOFT PROCESSOR: AN EXAMPLE

6.9 RECONFIGURATION

6.10 CONCLUSIONS

7  Application Studies

7.1 INTRODUCTION

7.2 SOC DESIGN APPROACH

7.3 APPLICATION STUDY: AES

7.4 APPLICATION STUDY: 3-D GRAPHICS PROCESSORS

7.5 APPLICATION STUDY: IMAGE COMPRESSION

7.6 APPLICATION STUDY: VIDEO COMPRESSION

7.7 FURTHER APPLICATION STUDIES

7.8 CONCLUSIONS

8  What’s Next: Challenges Ahead

8.1 INTRODUCTION

I. THE FUTURE SYSTEM: AUTONOMOUS SYSTEM-ON-CHIP

8.2 OVERVIEW

8.3 TECHNOLOGY

8.4 POWERING THE ASOC

8.5 THE SHAPE OF THE ASOC

8.6 COMPUTER MODULE AND MEMORY

8.7 RF OR LIGHT COMMUNICATIONS

8.8 SENSING

8.9 MOTION, FLIGHT, AND THE FRUIT FLY

II. THE FUTURE DESIGN PROCESS: SELF-OPTIMIZATION AND SELF-VERIFICATION

8.10 MOTIVATION

8.11 OVERVIEW

8.12 PRE-DEPLOYMENT

8.13 POST-DEPLOYMENT

8.14 ROADMAP AND CHALLENGES

8.15 SUMMARY

APPENDIX: Tools for Processor Evaluation

REFERENCES

Index

Copyright © 2011 by John Wiley & Sons, Inc. All rights reserved.

Published by John Wiley & Sons, Inc., Hoboken, New Jersey.

Published simultaneously in Canada.

No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning, or otherwise, except as permitted under Section 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, Inc., 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 750-4470, or on the web at www.copyright.com. Requests to the Publisher for permission should he addressed to the Permissions Department, John Wiley & Sons, Inc., II 1 River Street, Hoboken, NJ 07030, (201) 748-601 1, fax (201) 748-6008, or online at http://www.wiley.com/go/permissions.

Limit of Liability/Disclaimer of Warranty: While the publisher and author have used their best efforts in preparing this book, they make no representations or warranties with respect to the accuracy or completeness of the contents of this book and specifically disclaim any implied warranties of merchantability or fitness for a particular purpose. No warranty may be created or extended by sales representatives or written sales materials. The advice and strategies contained herein may not be suitable for your situation. You should consult with a professional where appropriate. Neither the publisher nor author shall be liable for any loss of profit or any other commercial damages, including but not limited to special, incidental, consequential, or other damages.

For general infor-nation on our other products and services or for technical support, please contact our Customer Care Department within the United States at (800) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002.

Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic formats. For more information about Wiley products, visit our web site at www.wiley.com.

Library of Congress Cataloging-in-Publication Data:

Flynn, M. J. (Michael J.), 1934–

 Computer system design : system-on-chip / Michael J. Flynn, Wayne Luk.

p. cm.

Includes bibliographical references and index.

 ISBN 978-0-470-64336-5 (hardback)

 1. Systems on a chip. I. Luk, Wayne. II. Title.

 TK7895.E42F65 2011

 004.1–dc22

2010040981

oBook ISBN: 9781118009925

ePDF ISBN: 9781118009901

ePub ISBN: 9781118009918

PREFACE

The next generation of computer system designers will be concerned more about the elements of a system tailored to particular applications than with the details of processors and memories.

Such designers would have rudimentary knowledge of processors and other elements in the system, but the success of their design would depend on their skills in making system-level trade-offs that optimize the cost, performance, and other attributes to meet application requirements.

This text is organized to introduce issues in computer system design, particularly for system-on-chip (SOC). Managing such design requires knowledge of a number of issues, as shown in Figure 1.

Figure 1 An approach to SOC system design described in this book.

After Chapter 1, the introduction chapter, Chapter 2 looks at issues that define the design space: area, speed, power consumption, and configurability. Chapters 3–5 provide background knowledge of the basic elements in a system: processor, memory, and interconnect.

The succeeding chapters focus on computer systems tailored to specific applications and technologies. Chapter 6 covers issues in customizing and configuring designs. Chapter 7 addresses system-level trade-offs for various applications, bringing together earlier material in this study. Finally, Chapter 8 presents future challenges for system design and SOC possibilities.

The tools that illustrate the material in the text are still being developed. The Appendix provides an overview of one such tool. Since our tools are evolving, please check from time to time to see what is available at the companion web site: www.soctextbook.com.

Moreover, material useful for teaching, such as slides and answers to exercises, is also being prepared.

This book covers a particular approach to computer system design, with emphasis on fundamental ideas and analytical techniques that are applicable to a range of applications and architectures, rather than on specific applications, architectures, languages, and tools. We are aware of complementary treatments on these and also on other topics, such as electronic system-level design, embedded software development, and system-level integration and test. We have included brief descriptions and references to these topics where appropriate; a more detailed treatment can be covered in future editions or in different volumes.

SOC is a quickly developing field. Although we focused on funda­mental material, we were forced to draw a line on the inclusion of the latest technological advances for the sake of completing the book. Such advances, instead, are captured as links to relevant sources of information at the companion web site described above.

Many colleagues and students, primarily at Imperial College London and Stanford University, have contributed to this book. We are sorry that we are not able to mention them all by name here. However, a number of individuals deserve special acknowledgment. Peter Cheung worked closely with us from the beginning; his contributions shaped the treatment of many topics, particularly those in Chapter 5. Tobias Becker, Ray Cheung, Rob Dimond, Scott Guo, Shay Ping Seng, David Thomas, Steve Wilton, Alice Yu, and Chi Wai Yu contributed significant material to various chapters. Philip Leong and Roger Woods read the manuscript many times carefully and provided many excellent suggestions for improvement. We also greatly benefited from comments by Jeffrey Arnold, Peter Boehm, Don Bouldin, Geoffrey Brown, Patrick Hung, Sebastian Lopez, Oskar Mencer, Kevin Rudd, and several anonymous reviewers. We thank Kubilay Atasu, Peter Collingbourne, James Huggett, Qiwei Jin, Adrien Le Masle, Pete Sedcole, and Tim Todman, as well as those who prefer to remain anonymous, for their invaluable assistance.

Last, but not least, we thank Cassie Strickland, of Wiley, and Janet Hronek, of Toppan Best-set, for their help in the timely completion of this text.

LIST OF ABBREVIATIONS AND ACRONYMS

AC

Autonomous chip

A/D

Analog to digital

AES

Advanced Encryption Standard

AG

Address generation

ALU

Arithmetic and logic unit

AMBA

Advanced Microcontroller Bus Architecture

ASIC

Application-specific integrated circuit

ASIP

Application-specific instruction processor

ASOC

Autonomous system-on-chip

AXI

Advanced eXtensible Interface

BC

Branch conditional

BIST

Built-in-self-test

BRAM

Block random access memory

BTB

Branch target buffer

CAD

Computer aided design

CBWA

Copy-back write allocate cache

CC

Condition codes

CFA

Color filter array

CGRA

Coarse-grained reconfigurable architecture

CIF

Common Intermediate Format

CISC

Complex instruction set computer

CLB

Configurable Logic Block

CMOS

Complementary metal oxide semiconductor

CORDIC

COordinate Rotation Digital Computer

CPI

Cycles per instruction

CPU

Central processing unit

DCT

Discrete Cosine Transform

DDR

Double data rate

DES

Data Encryption Standard

3DES

Triple Data Encryption Standard

DF

Data fetch

DMA

Direct memory access

DRAM

Dynamic random access memory

DSP

Digital signal processing (or processor)

DTMR

Design Target Miss Rates

ECC

Error correcting code

eDRAM

Embedded dynamic random access memory

EX

Execute

FIFO

First in first out

FIR

Finite impulse response

FO4

Fan-out of four

FP

Floating-point

FPGA

Field programmable gate array

FPR

Floating-point register

FPU

Floating-point unit

GB

Giga bytes, a billion (109) bytes

GIF

Graphics interface

GPP

General-purpose processor

GPR

General-purpose register

GPS

Global Positioning System

GSM

Global System for Mobile Communications

HDTV

High definition television

HPC

High performance computing

IC

Integrated circuit

ICU

Interconnect interface unit

ID

Instruction decode

IF

Instruction fetch

ILP

Instruction-level parallelism

I/O

Input/output

IP

Intellectual property

IR

Instruction register

ISA

Instruction set architecture

JPEG

Joint Photographic Experts Group (image compression standard)

Kb

Kilo bits, one thousand (103) bits

KB

Kilo bytes, one thousand bytes

L1

Level 1 (for cache)

L2

Level 2 (for cache)

LE

Logic Element

LRU

Least recently used

L/S

Load-store

LSI

Large scale integration

LUT

Lookup table

Mb

Mega bits, one million (106) bits

MB

Mega bytes, one million bytes

MEMS

Micro electro mechanical systems

MIMD

Multiple instruction streams, multiple data streams

MIPS

Million instructions per second

MOPS

Million operations per second

MOS

Metal oxide semiconductor

MPEG

Motion Picture Experts Group (video compression standard)

MTBF

Mean time between faults

MUX

Multiplexor

NOC

Network on chip

OCP

Open Core Protocol

OFDM

Orthogonal Frequency-Division Multiplexing

PAN

Personal area network

PCB

Printed circuit board

PLCC

Plastic leaded chip carrier

PROM

Programmable read only memory

QCIF

Quarter Common Intermediate Format

RAM

Random access memory

RAND

Random

RAW

Read-after-write

rbe

Register bit equivalent

RF

Radio frequency

RFID

Radio frequency identification

RISC

Reduced instruction set computer

R/M

Register-memory

ROM

Read only memory

RTL

Register transfer language

SAD

Sum of the absolute differences

SDRAM

Synchronous dynamic random access memory

SECDED

Single error correction, double error detection

SER

Soft error rate

SIA

Semiconductor Industry Association

SIMD

Single instruction stream, multiple data streams

SMT

Simultaneous multithreading

SOC

System on chip

SRAM

Static random access memory

TLB

Translation look-aside buffer

TMR

Triple modular redundancy

UART

Universal asynchronous receiver/transmitter

UMTS

Universal mobile telecommunications system

UV

Ultraviolet

VCI

Virtual Component Interface

VLIW

Very long instruction word

VLSI

Very large scale integration

VPU

Vector processing unit

VR

Vector register

VSIA

Virtual Socket Interface Alliance

WAR

Write after read

WAW

Write after write

WB

Write back

WTNWA

Write-through cache, no write allocate

1

Introduction to the Systems Approach

1.1 SYSTEM ARCHITECTURE: AN OVERVIEW

The past 40 years have seen amazing advances in silicon technology and resulting increases in transistor density and performance. In 1966, Fairchild Semiconductor [84] introduced a quad two input NAND gate with about 10 transistors on a die. In 2008, the Intel quad-core Itanium processor has 2 billion transistors [226]. Figures 1.1 and 1.2 show the unrelenting advance in improving transistor density and the corresponding decrease in device cost.

Figure 1.1 The increasing transistor density on a silicon die.

Figure 1.2 The decrease of transistor cost over the years.

The aim of this book is to present an approach for computer system design that exploits this enormous transistor density. In part, this is a direct extension of studies in computer architecture and design. However, it is also a study of system architecture and design.

About 50 years ago, a seminal text, Systems Engineering—An Introduction to the Design of Large-Scale Systems [111], appeared. As the authors, H.H. Goode and R.E. Machol, pointed out, the system’s view of engineering was created by a need to deal with complexity. As then, our ability to deal with complex design problems is greatly enhanced by computer-based tools.

A system-on-chip (SOC) architecture is an ensemble of processors, memories, and interconnects tailored to an application domain. A simple example of such an architecture is the Emotion Engine [147, 187, 237] for the Sony PlayStation 2 (Figure 1.3), which has two main functions: behavior simulation and geometry translation. This system contains three essential components: a main processor of the reduced instruction set computer (RISC) style [118] and two vector processing units, VPU0 and VPU1, each of which contains four parallel processors of the single instruction, multiple data (SIMD) stream style [97]. We provide a brief overview of these components and our overall approach in the next few sections.

Figure 1.3 High-level functional view of a system-on-chip: the Emotion Engine of the Sony PlayStation 2 [147, 187].

While the focus of the book is on the system, in order to understand the system, one must first understand the components. So, before returning to the issue of system architecture later in this chapter, we review the components that make up the system.

1.2 COMPONENTS OF THE SYSTEM: PROCESSORS, MEMORIES, AND INTERCONNECTS

The term architecture denotes the operational structure and the user’s view of the system. Over time, it has evolved to include both the functional specification and the hardware implementation. The system architecture defines the system-level building blocks, such as processors and memories, and the interconnection between them. The processor architecture determines the processor’s instruction set, the associated programming model, its detailed implementation, which may include hidden registers, branch prediction circuits and specific details concerning the ALU (arithmetic logic unit). The implementation of a processor is also known as (Figure ).

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!