书籍详情
计算机系统结构(英文版第2版)
作者:(英)威廉斯
出版社:机械工业出版社
出版时间:2007-01-01
ISBN:9787111204176
定价:¥69.00
购买这本书可以去
内容简介
本书采用自底向上的方式,依次介绍计算机系统结构的基本概念和基本内容,首先是数字逻辑电路和计算机硬件,接下来是运行于硬件之上的软件层,最后讲述通信和操作系统领域的基础知识。另外,还包含对ARM和安腾(Itanium)处理器的介绍以及数据通信延伸领域的最新知识。本书紧密联系实际,注重动手实践,利用学生感兴趣和亲身体验过的技术(如因特网、图形用户界面、移动通信等)来提高读者学习的积极性。贯穿全书,在分析系统的性能时注意将软件硬件结合起来讨论,练习题充分地展示出硬件和软件之间这种相互影响、相互依赖的基本关系。本书适合作为高等院校计算科学及相关专业计算机系统结构的导论性教材。本书的主要特色● 使用实际的处理器(奔腾处理器),使学生能够在家中使用自己的机器完成绝大部分的练习作业。● 内容组织合理,材料取自于作者自己从事教学和实验工作的真实需求。● 介绍数据传输和通信相关的思想和概念,为联网和网络通信相关的课程打下基础。● 每章结束后的练习均经过精心挑选,书末附有答案及注释。● 书中用到许多现代的、商业化的实例,能够有效地激发读者的学习兴趣,并将理论与实际结合起来。
作者简介
作者:Rob WilliamsRob Williams是位于英国布里斯托的西英格兰大学计算机系统技术学院院长。他在实时系统领域造诣颇深,同时还是GWE/GNE、Marconi Avionics和Nexos Office System的微处理器系统工程师。...
目录
Preface.
Preface to the first edition
Recommended lab sessions
Part 1 Basic functions and facilities of a computer
1 Introduction: the hardware-software interface
1.1 Computer systems - the importance of networking
1.2 Hardware and software - mutual dependence
1.3 Programming your way into hardware - VHDL, a language for electroni engineers
1.4 Systems administration - we all need to know
1.5 Voice, image and data – technological convergence
1.6 Windowing interfaces - WIMPs
1.7 The global Internet -connecting all the networks
1.8 Using the PC – a case study; more reasons to study CSA
2 The von Neumann Inheritance
2.1 Base 2 - the convenience of binary - 10110011100011110000
2.2 Stored program control - general-purpose machines
2.3 Instruction codes - machine action repertoire
2.4 Translation -compilers and assemblers
2.5 Linking - bringing it all together
2.6 Interpreters - executing high-level commands
2.7 Code sharing and reuse - let's not write it all again!
2.8 Data codes - numeric and character
2.9 The operating system - Unix and Windows
2.10 Client-server computing - the way of the Net
2.11 Reconfigurable hardware - an alternative to fetch-execute
3 Functional units and the fetch-execute cycle
3.1 The naming of parts - CPU, memory, IO units
3.2 The CPU fetch-execute cycle - high-speed tedium
3.3 System bus - synchronous or asynchronous?
3.4 System clock - instruction cycle timing
3.5 Pre-fetching - early efforts to speed things up
3.6 Memory length - address width
3.7 Endian-ness - Microsoft vs. Unix, or Intel vs. Motorola?
3.8 Simple input-output - parallel ports
4 Building computers from logic: the control unit
4.1 Electronic Lego and logic- the advantage of modular units
4.2 Basic logic gates - truth tables for AND, OR, XOR and NOT
4.3 Truth tables and multiplexers - a simple but effective design tool
4.4 Programmable logic - reconfigurable logic chips
4.5 Traffic light controllers - impossible to avoid!
4.6 Circuit implementation from truth tables - some practical tips
4.7 Decoder logic - essential for control units and memories
4.8 CPU control unit - the 'brain'
4.9 Washing machine controllers - a simple CU
4.10 RISC vs. CISC decoding - in search of faster computers
5 Building computers from logic : the ALU
5.1 De Morgan's equivalen es - logical interchangeability
5.2 Binary addition - half adders, full adders, parallel adders
5.3 Binary subtraction - using two's omplement integer format
5.4 Binary shifting - barrel shifter
5.5 Integer multiplication - shifting and adding
5.6 Floating-point numbers - from very, very large to very, very small
6 Building computers from logic: the memory
6.1 Data storage - one bit at a time
6.2 Memory devices - memory modules for computers
6.3 Static memory - a lot of fast flip-flops
6.4 Dynamic memory - a touch of analogue amid the digital
6.5 DRAM refreshing - something else to do
6.6 Page acess memories - EDO and SDRAM
6.7 Memory mapping - addressing and decoding
6.8 IO port mapping - integration vs. differentiation
7 The Intel Pentium CPU
7.1 The Pentium - a high-performance microprocessor
7.2 CPU registers - temporary store for data and address variables
7.3 Instruction set - introduction to the basic Pentium set
7.4 Structure of instructions - how the CU sees it
7.5 CPU status flags - very short-term memory
7.6 Addressing modes - building effective addresses
7.7 Execution pipelines - the RISC speedup technique
7.8 Pentium 4 - extensions
7.9 Microsoft Developer Studio - using the debugger
8 Subroutines
8.1 The purpose of subroutines - saving space and effort
8.2 Return address - introducing the stack
8.3 Using subroutines - HLL programming
8.4 The stack - essential to most operations
8.5 Passing parameters - localizing a subroutine
8.6 Stack frame - all the local variables
8.7 Supporting HLLs - special CPU facilities for dealing with subroutines
8.8 Interrupt service routines - hardware-invoked subroutines
8.9 Accessing operating system routines - late binding
9 Simple input and output
9.1 Basic IO methods - polling, interrupt and DMA
9.2 Peripheral interfa e registers - the programmer's viewpoint
9.3 Polling - single- character IO
9.4 Interrupt processing - service on demand
9.5 Critical data protection - how to communicate with interrupts
9.6 Buffered lO - interrupt device drivers
9.7 Direct memory acess (DMA) - autonomous hardware
9.8 Single- haracter IO - screen and keyboard routines
10 Serial Connections
10.1 Serial transmission - data, signals and timing
10.2 Data format - encoding techniques
10.3 Timing synchronization - frequency and phase
10.4 Data codes and error control - parity, checksums, Hamming codes and CRCs
10.5 Flow control - hardware and software methods
10.6 The 16550 UART- RS232..
10.7 Serial mice - mechanical or optial
10.8 Serial ports - practical tips, avoiding the frustration
10.9 USB- Universal Serial Bus
10.10 Modems - modulating carrier waves
11 Parallel connections
11.1 Parallel interfaces - better performance
11.2 Centronics - more than a printer port but less than a bus
11.3 SCSI - the Small Computer Systems Interface
11.4 IDE- Intelligent Drive Electronics
11.5 AT/ISA - a computer standards sucess story
11.6 PCI - Peripheral Component Interconnection
11.7 Plug-and-Play - automatic configuration
11.8 PCMCIA - Personal Computer Memory Card International Association
12 The memory hierarchy
12.1 Levels of performance - you get what you pay for
12.2 Localization of acess - exploiting repetition
12.3 Instruction and data caches - matching memory to CPU speed
12.4 Cache mapping - direct or associative
12.5 Virtual memory- segmentation and demand paging
12.6 Address formulation - when, where and how much
12.7 Hard disk usage - parameters, acess scheduling and data arrangement
12.8 Performance improvement- blocking, caching, defragmentation, scheduling, RAM disk
12.9 Optical discs - CD-DA, CD-ROM, CD-RW and DVDs
12.10 DVD - Digital Versatile Disc
12.11 MPEG - video and audio compression
12.12 Flash sticks - the new floppy disk
Part 2 Networking and increased complexity
13 The programmer's viewpoint
13.1 Different viewpoints - different needs
13.2 Application user- office packages
13.3 Systems administration - software installation and maintenance
13.4 HLL programmer - working with Java, C++, BASIC or C#
13.5 Systems programming - assembler and C
13.6 Hardware engineer- design and hardware maintenance
13.7 Layered virtual machines – hierarchical description
13.8 Assemblers- simple translators
13.9 Compilers - translation and more
14 Local area networks
14.1 Reconne ting the users - email, printers and database
14.2 PC network interface - cabling and interface card
14.3 Ethernet - Carrier Sense, Multiple Access/Collision Dete t
14.4 LAN addressing - logical and physical schemes
14.5 Host names - another layer of translation
14.6 Layering and en apsulation - TCP/IP software stack
14.7 Networked file systems - sharing files across a network
14.8 Interconnecting networks - gateways
14.9 Socket programming- an introduction to WinSock
15 Wide area networks
15.1 The Internet - origins
15.2 TCP/IP - the essential protocols
15.3 TCP - handling errors and flow control
15.4 IP routing - how packets find their way
15.5 DNS- Distributed Name Database
15.6 World Wide Web - the start
15.7 Browsing the Web - Nets ape Navigator
15.8 HTTP - another protocol
15.9 Search engines- Google
15.10 Open Systems Interconnect - ancidealized scheme
16 Other networks
16.1 The PSTN- telephones
16.2 Cellnets - providers of mobile communications
16.3 ATM - Asynchronous Transfer Mode
16.4 Messaging - radio paging and packet radio networks
16.5 ISDN - totally digital
16.6 DSL - Digital Subscriber Line
16.7 Cable television - facilities for data transmission
17 Introduction to operating systems
17.1 Histori origins - development of basic functions
17.2 Unix - a landmark operating system
17.3 Outline structure - modularization
17.4 Process management- initialization and dispatching
17.5 Scheduling decisions- time-slicing, demand preemption or ooperative
17.6 Task communication - pipes and redirection
17.7 Exclusion and synchronization - semaphores and signals
17.8 Memory allocation - mallo () and free()
17.9 User interface - GUIs and shells
17.10 Input-output management - device handlers
18 Windows XP
18.1 Windows GUIs - responding to a need
18.2 Win32 - the preferred user APl
18.3 Processes and threads- multitasking
18.4 Memory management- virtual memory implementation
18.5 Windows Registry- centralized administrative database
18.6 NTFS - Windows NT File System
18.7 File acess - ACLs, permissions and security
18.8 Sharing software components - OLE, DDE and COM
18.9 Windows NT as a mainframe - Winframe terminal server
19 Filing systems
19.1 Data storage - file systems and databases
19.2 The PC file allo ationctable - FAT
19.3 Unix inodes - they do it differently
19.4 Microsoft NTFS - complexity and security
19.5 RAID configuration - more security for the disk subsystem
19.6 File security - access controls
19.7 CD portable file system - multi-session contents lists
20 Visual output
20.1 Computers and graphics - capture, storage, processing and redisplay
20.2 PC graphics adapter cards - graphics coprocessors
20.3 Laser printers - this is mechatronics!
20.4 Adobe PostScript - a page description language
20.5 WIMPs- remodelling the computer
20.6 Win32 - graphical APl and more
20.7 The X Window system - enabling distributed processing
20.8 MMX technology- assisting graphi calcalculations
21 RISC processors: ARM and SPARC
21.1 Justifying RISC - in reased instruction throughput
21.2 Pipeline techniques - more parallel operations
21.3 Supers alar methods - parallel parallelism
21.4 Register files - many more CPU registers
21.5 Branch prediction methods - maintaining the pipelines
21.6 Compiler support - an essential part of RISC
21.7 The ARM 32 bit CPU - origins
21.8 StrongARM processor - a 32 bit microcontroller
21.9 The HP iPAQ - a StrongARM PDA
21.10 Puppeteer - a StrongARM SBC
21.11 Sun SPARC - scalar processor archite turecas RISC
21.12 Embedded systems - ross-development techniques
22 VLIW processors: the EPIC Itanium
22.1 Itanium 64 bit processor - introduction
22.2 Itanium assembler - increasing the ontrol of the CPU
22.3 Run-time debugging - gvd/gdb
22.4 Future processor design - debate
23 Parallel processing
23.1 Parallel processing-the basis
23.2 Instru tion-level parallelism (lLP) - pipelining
23.3 Superscalar - multiple execution units
23.4 Symmetric, shared memory multiprocessing (SMP) - the future?
23.5 Single-chip multiprocessors - the IBM Cell
23.6 Clusters and grids - application-level parallelism
Appendix: MS Visual Studio 8, Express Edition
Glossary
Answers to end-of-chapter questions
References
Index...
Preface to the first edition
Recommended lab sessions
Part 1 Basic functions and facilities of a computer
1 Introduction: the hardware-software interface
1.1 Computer systems - the importance of networking
1.2 Hardware and software - mutual dependence
1.3 Programming your way into hardware - VHDL, a language for electroni engineers
1.4 Systems administration - we all need to know
1.5 Voice, image and data – technological convergence
1.6 Windowing interfaces - WIMPs
1.7 The global Internet -connecting all the networks
1.8 Using the PC – a case study; more reasons to study CSA
2 The von Neumann Inheritance
2.1 Base 2 - the convenience of binary - 10110011100011110000
2.2 Stored program control - general-purpose machines
2.3 Instruction codes - machine action repertoire
2.4 Translation -compilers and assemblers
2.5 Linking - bringing it all together
2.6 Interpreters - executing high-level commands
2.7 Code sharing and reuse - let's not write it all again!
2.8 Data codes - numeric and character
2.9 The operating system - Unix and Windows
2.10 Client-server computing - the way of the Net
2.11 Reconfigurable hardware - an alternative to fetch-execute
3 Functional units and the fetch-execute cycle
3.1 The naming of parts - CPU, memory, IO units
3.2 The CPU fetch-execute cycle - high-speed tedium
3.3 System bus - synchronous or asynchronous?
3.4 System clock - instruction cycle timing
3.5 Pre-fetching - early efforts to speed things up
3.6 Memory length - address width
3.7 Endian-ness - Microsoft vs. Unix, or Intel vs. Motorola?
3.8 Simple input-output - parallel ports
4 Building computers from logic: the control unit
4.1 Electronic Lego and logic- the advantage of modular units
4.2 Basic logic gates - truth tables for AND, OR, XOR and NOT
4.3 Truth tables and multiplexers - a simple but effective design tool
4.4 Programmable logic - reconfigurable logic chips
4.5 Traffic light controllers - impossible to avoid!
4.6 Circuit implementation from truth tables - some practical tips
4.7 Decoder logic - essential for control units and memories
4.8 CPU control unit - the 'brain'
4.9 Washing machine controllers - a simple CU
4.10 RISC vs. CISC decoding - in search of faster computers
5 Building computers from logic : the ALU
5.1 De Morgan's equivalen es - logical interchangeability
5.2 Binary addition - half adders, full adders, parallel adders
5.3 Binary subtraction - using two's omplement integer format
5.4 Binary shifting - barrel shifter
5.5 Integer multiplication - shifting and adding
5.6 Floating-point numbers - from very, very large to very, very small
6 Building computers from logic: the memory
6.1 Data storage - one bit at a time
6.2 Memory devices - memory modules for computers
6.3 Static memory - a lot of fast flip-flops
6.4 Dynamic memory - a touch of analogue amid the digital
6.5 DRAM refreshing - something else to do
6.6 Page acess memories - EDO and SDRAM
6.7 Memory mapping - addressing and decoding
6.8 IO port mapping - integration vs. differentiation
7 The Intel Pentium CPU
7.1 The Pentium - a high-performance microprocessor
7.2 CPU registers - temporary store for data and address variables
7.3 Instruction set - introduction to the basic Pentium set
7.4 Structure of instructions - how the CU sees it
7.5 CPU status flags - very short-term memory
7.6 Addressing modes - building effective addresses
7.7 Execution pipelines - the RISC speedup technique
7.8 Pentium 4 - extensions
7.9 Microsoft Developer Studio - using the debugger
8 Subroutines
8.1 The purpose of subroutines - saving space and effort
8.2 Return address - introducing the stack
8.3 Using subroutines - HLL programming
8.4 The stack - essential to most operations
8.5 Passing parameters - localizing a subroutine
8.6 Stack frame - all the local variables
8.7 Supporting HLLs - special CPU facilities for dealing with subroutines
8.8 Interrupt service routines - hardware-invoked subroutines
8.9 Accessing operating system routines - late binding
9 Simple input and output
9.1 Basic IO methods - polling, interrupt and DMA
9.2 Peripheral interfa e registers - the programmer's viewpoint
9.3 Polling - single- character IO
9.4 Interrupt processing - service on demand
9.5 Critical data protection - how to communicate with interrupts
9.6 Buffered lO - interrupt device drivers
9.7 Direct memory acess (DMA) - autonomous hardware
9.8 Single- haracter IO - screen and keyboard routines
10 Serial Connections
10.1 Serial transmission - data, signals and timing
10.2 Data format - encoding techniques
10.3 Timing synchronization - frequency and phase
10.4 Data codes and error control - parity, checksums, Hamming codes and CRCs
10.5 Flow control - hardware and software methods
10.6 The 16550 UART- RS232..
10.7 Serial mice - mechanical or optial
10.8 Serial ports - practical tips, avoiding the frustration
10.9 USB- Universal Serial Bus
10.10 Modems - modulating carrier waves
11 Parallel connections
11.1 Parallel interfaces - better performance
11.2 Centronics - more than a printer port but less than a bus
11.3 SCSI - the Small Computer Systems Interface
11.4 IDE- Intelligent Drive Electronics
11.5 AT/ISA - a computer standards sucess story
11.6 PCI - Peripheral Component Interconnection
11.7 Plug-and-Play - automatic configuration
11.8 PCMCIA - Personal Computer Memory Card International Association
12 The memory hierarchy
12.1 Levels of performance - you get what you pay for
12.2 Localization of acess - exploiting repetition
12.3 Instruction and data caches - matching memory to CPU speed
12.4 Cache mapping - direct or associative
12.5 Virtual memory- segmentation and demand paging
12.6 Address formulation - when, where and how much
12.7 Hard disk usage - parameters, acess scheduling and data arrangement
12.8 Performance improvement- blocking, caching, defragmentation, scheduling, RAM disk
12.9 Optical discs - CD-DA, CD-ROM, CD-RW and DVDs
12.10 DVD - Digital Versatile Disc
12.11 MPEG - video and audio compression
12.12 Flash sticks - the new floppy disk
Part 2 Networking and increased complexity
13 The programmer's viewpoint
13.1 Different viewpoints - different needs
13.2 Application user- office packages
13.3 Systems administration - software installation and maintenance
13.4 HLL programmer - working with Java, C++, BASIC or C#
13.5 Systems programming - assembler and C
13.6 Hardware engineer- design and hardware maintenance
13.7 Layered virtual machines – hierarchical description
13.8 Assemblers- simple translators
13.9 Compilers - translation and more
14 Local area networks
14.1 Reconne ting the users - email, printers and database
14.2 PC network interface - cabling and interface card
14.3 Ethernet - Carrier Sense, Multiple Access/Collision Dete t
14.4 LAN addressing - logical and physical schemes
14.5 Host names - another layer of translation
14.6 Layering and en apsulation - TCP/IP software stack
14.7 Networked file systems - sharing files across a network
14.8 Interconnecting networks - gateways
14.9 Socket programming- an introduction to WinSock
15 Wide area networks
15.1 The Internet - origins
15.2 TCP/IP - the essential protocols
15.3 TCP - handling errors and flow control
15.4 IP routing - how packets find their way
15.5 DNS- Distributed Name Database
15.6 World Wide Web - the start
15.7 Browsing the Web - Nets ape Navigator
15.8 HTTP - another protocol
15.9 Search engines- Google
15.10 Open Systems Interconnect - ancidealized scheme
16 Other networks
16.1 The PSTN- telephones
16.2 Cellnets - providers of mobile communications
16.3 ATM - Asynchronous Transfer Mode
16.4 Messaging - radio paging and packet radio networks
16.5 ISDN - totally digital
16.6 DSL - Digital Subscriber Line
16.7 Cable television - facilities for data transmission
17 Introduction to operating systems
17.1 Histori origins - development of basic functions
17.2 Unix - a landmark operating system
17.3 Outline structure - modularization
17.4 Process management- initialization and dispatching
17.5 Scheduling decisions- time-slicing, demand preemption or ooperative
17.6 Task communication - pipes and redirection
17.7 Exclusion and synchronization - semaphores and signals
17.8 Memory allocation - mallo () and free()
17.9 User interface - GUIs and shells
17.10 Input-output management - device handlers
18 Windows XP
18.1 Windows GUIs - responding to a need
18.2 Win32 - the preferred user APl
18.3 Processes and threads- multitasking
18.4 Memory management- virtual memory implementation
18.5 Windows Registry- centralized administrative database
18.6 NTFS - Windows NT File System
18.7 File acess - ACLs, permissions and security
18.8 Sharing software components - OLE, DDE and COM
18.9 Windows NT as a mainframe - Winframe terminal server
19 Filing systems
19.1 Data storage - file systems and databases
19.2 The PC file allo ationctable - FAT
19.3 Unix inodes - they do it differently
19.4 Microsoft NTFS - complexity and security
19.5 RAID configuration - more security for the disk subsystem
19.6 File security - access controls
19.7 CD portable file system - multi-session contents lists
20 Visual output
20.1 Computers and graphics - capture, storage, processing and redisplay
20.2 PC graphics adapter cards - graphics coprocessors
20.3 Laser printers - this is mechatronics!
20.4 Adobe PostScript - a page description language
20.5 WIMPs- remodelling the computer
20.6 Win32 - graphical APl and more
20.7 The X Window system - enabling distributed processing
20.8 MMX technology- assisting graphi calcalculations
21 RISC processors: ARM and SPARC
21.1 Justifying RISC - in reased instruction throughput
21.2 Pipeline techniques - more parallel operations
21.3 Supers alar methods - parallel parallelism
21.4 Register files - many more CPU registers
21.5 Branch prediction methods - maintaining the pipelines
21.6 Compiler support - an essential part of RISC
21.7 The ARM 32 bit CPU - origins
21.8 StrongARM processor - a 32 bit microcontroller
21.9 The HP iPAQ - a StrongARM PDA
21.10 Puppeteer - a StrongARM SBC
21.11 Sun SPARC - scalar processor archite turecas RISC
21.12 Embedded systems - ross-development techniques
22 VLIW processors: the EPIC Itanium
22.1 Itanium 64 bit processor - introduction
22.2 Itanium assembler - increasing the ontrol of the CPU
22.3 Run-time debugging - gvd/gdb
22.4 Future processor design - debate
23 Parallel processing
23.1 Parallel processing-the basis
23.2 Instru tion-level parallelism (lLP) - pipelining
23.3 Superscalar - multiple execution units
23.4 Symmetric, shared memory multiprocessing (SMP) - the future?
23.5 Single-chip multiprocessors - the IBM Cell
23.6 Clusters and grids - application-level parallelism
Appendix: MS Visual Studio 8, Express Edition
Glossary
Answers to end-of-chapter questions
References
Index...
猜您喜欢