Computer Architecture
eBook - ePub

Computer Architecture

Digital Circuits to Microprocessors

  1. 752 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Computer Architecture

Digital Circuits to Microprocessors

About this book

-->

An introductory text to computer architecture, this comprehensive volume covers the concepts from logic gates to advanced computer architecture. It comes with a full spectrum of exercises and web-downloadable support materials, including assembler and simulator, which can be used in the context of different courses. The authors also make available a hardware description, which can be used in labs and assignments, for hands-on experimentation with an actual, simple processor.

This unique compendium is a useful reference for undergraduates, graduates and professionals majoring in computer engineering, circuits and systems, software engineering, biomedical engineering and aerospace engineering.

--> Sample Chapter(s)
Chapter 1: Digital Representation of Information

Request Inspection Copy


--> Contents:

  • Preface
  • Digital Representation of Information
  • Logic Functions
  • Physical Implementation of Logic Circuits
  • Combinational Modules of Medium Complexity
  • Arithmetic Circuits
  • Basic Sequential Circuits
  • Analysis and Design of Sequential Circuits
  • Register Transfers and Datapaths
  • Computer Architecture
  • Instruction Set Architectures
  • Programming in Assembly Language
  • Internal Structure of a Processor
  • Memory Systems
  • Inputs, Outputs and Communications
  • Advanced Computer Architecture Topics

-->
--> Readership: Professionals, researchers, academics, undergraduate and graduate students in computer engineering, circuits & systems, software engineering, biomedical engineering and aerospace engineering. -->
Computer Architecture;Digital Systems;Digital Circuits;Digital Logic;Microprocessors;Logig Gates;Sequential Circuits;Combinational Circuits;Binary Arithmetic;Arithmetic and Logic Unit;Pipelines00

Frequently asked questions

Yes, you can cancel anytime from the Subscription tab in your account settings on the Perlego website. Your subscription will stay active until the end of your current billing period. Learn how to cancel your subscription.
No, books cannot be downloaded as external files, such as PDFs, for use outside of Perlego. However, you can download books within the Perlego app for offline reading on mobile or tablet. Learn more here.
Perlego offers two plans: Essential and Complete
  • Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
  • Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Both plans are available with monthly, semester, or annual billing cycles.
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Yes! You can use the Perlego app on both iOS or Android devices to read anytime, anywhere — even offline. Perfect for commutes or when you’re on the go.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app.
Yes, you can access Computer Architecture by Guilherme Arroz, José Monteiro, Arlindo Oliveira in PDF and/or ePUB format, as well as other popular books in Computer Science & Systems Architecture. We have over one million books available in our catalogue for you to explore.

Information

Chapter 1

Digital Representation of Information

This chapter is focused on the ways computers represent information in digital format. In particular, it discusses the mechanisms used to represent various quantities in a digital computer. The digital electronic circuits that are commonly used in a digital computer can assume only one of two possible values, which implies that different quantities have to be represented in a format compatible with this restriction.
We will start by describing how integers are represented, both in the decimal number system, which is familiar to everybody and in other number systems more adequated to be manipulated by computers. In this chapter, this study is limited to non-negative integers and non-negative fractional numbers.
The chapter begins with Section 1.1, where we study binary, octal and hexadecimal number systems. Section 1.2 focuses on studying the foundations of binary arithmetic. Section 1.3 deals with the use of codes, both numeric (with emphasis on decimal codes) as well as alphanumeric (to represent other types of information). Section 1.4 concludes the chapter with some basic concepts on the organisation of binary representation of information.

1.1Number Systems

This chapter deals with the representation of non-signed integer and fractional numbers. Later, in Chapter 5, this subject will be reconsidered to address the representation of signed integer and real numbers. The representation of numbers in digital systems has to be undertaken considering that they use devices which can represent only two possible values.
Given that the common representation of numbers is based on the utilisation of a decimal number system, using base-10, it is natural to consider that the representation of numbers in digital systems may be made using the binary system, using base-2. The base is the number of digits used to represent a number under a given number system.
The general case of representation using a generic base-b will be studied first, followed by the study of the base-2 case.

1.1.1Representation of Integers in Base-b

The representation of a non-signed integer in base-10 is made using a sequence of digits. The number 435, for example, is represented by the sequence of digits 4, 3 and 5. The interpretation of the representation of a number results, firstly, from the digits used and, secondly, from their position within the sequence. As is evident, 435 ≠ 354, even though the digits used are the same.
The position of the digits indicates the weight for each digit. In the previous example, because the digit 4 is in the third position from the right, this means, in fact, four hundreds. The digit 3 represents three tens, and 5 represents five units. This system of representation of numbers is referred as positional.
This analysis can be stated more formally as follows:
figure
or, expressing the powers of 10 involved,
figure
which is a more general way of representation, emphasising the powers of the base.
The number 435 is said to be represented in base-10 since it results from the sum of consecutive powers of 10, each multiplied by the value of the corresponding digit as shown in Equation (1.2). To explicitly indicate that the number is represented in base-10, the following notation is used: 43510. To represent a number in base-10, the weights of each power of 10 are indicated using digits from 0 to 9, using a total of 10 distinct digits.
There is nothing to prevent the use of another base to represent a number. Consider, for example, the sequence of digits 1161 in base-7, which is usually indicated by 11617. In this case, this representation has the following meaning:
figure
Therefore, 11617 is another way of representing the number 43510.
Generally speaking, any integer N can be represented in any base-b with b ≥ 2
figure
or
figure
where pj is the digit which represents the weight of the jth power of the base. The number of digits necessary is b and it is usual that the digits are the integers between 0 and b − 1
figure
Thus, to represent numbers in base-b, digits of a value equal to or greater than b cannot be used. For example, the representation of a number in base-7 cannot use the digit 7 nor any other digit greater than 7. The sequence of digits 17427 is therefore not a valid representation of a number.
The conversion of the representation of a number in base-b to a representation in base-10 is not difficult, as illustrated by Equation (1.3). The reverse, converting a number represented in base-10 to its representation in base-b requires a little more work, but it is also simple. One of the most common methods is the method of successive divisions. As an example, consider a number N represented in base-b, as shown in Equation (1.4). If the number is divided by b, this results in
figure
where p0 is the rest of the division of N by b (remember that p0 < b). In this way, the digit p0 can be identified.
Repeating the previous procedure for the number
inline
will enable us to derive p1 and through the successive application of the procedure, all the digits that represent the number.
As an example, consider obtaining the representation of the number 27310 in base-5
figure
In the same way, the following can be ...

Table of contents

  1. Cover Page
  2. Title Page
  3. Copyright Page
  4. Preface
  5. Contents
  6. 1. Digital Representation of Information
  7. 1.1 Number Systems
  8. 1.1.1 Representation of Integers in Base-b
  9. 1.1.2 Representation of Non-signed Integers in Base-2
  10. 1.1.3 Representation of Fractional Numbers in Base-2
  11. 1.1.4 Representation of Numbers in Bases Powers of 2
  12. 1.2 Arithmetic Operations in Base-2, Base-8 and Base-16
  13. 1.2.1 Sums in Base-2
  14. 1.2.2 Multiplications in Base-2
  15. 1.2.3 Arithmetic Operations in Other Bases
  16. 1.3 Codes
  17. 1.3.1 Coding
  18. 1.3.2 Numeric Codes
  19. 1.3.3 Reflected Codes
  20. 1.3.4 Alphanumeric Codes
  21. 1.4 Units of Information
  22. 1.5 Summary
  23. Exercises
  24. 2. Logic Functions
  25. 2.1 Binary Boolean Algebra
  26. 2.1.1 One-variable Logic Functions
  27. 2.1.2 Two-variable Logic Functions
  28. 2.1.3 The Functions AND and OR
  29. 2.1.4 Conjunction or AND Function
  30. 2.1.5 Disjunction or OR Function
  31. 2.1.6 Duality Principle
  32. 2.1.7 Operation Priority
  33. 2.1.8 Theorems Involving AND and OR
  34. 2.1.9 Formal Definition of Boolean Algebra
  35. 2.1.10 NAND and NOR Functions
  36. 2.1.11 XOR Function
  37. 2.1.12 N-variable Logic Functions
  38. 2.1.13 Handling of Logic Expressions
  39. 2.2 Representation of Logic Functions
  40. 2.2.1 Standard Sum of Products Form
  41. 2.2.2 Standard Product of Sums Form
  42. 2.2.3 Representation of Functions Using a Single Operator Type
  43. 2.3 Minimising Logic Expressions
  44. 2.3.1 Karnaugh Method
  45. 2.3.1.1 Motivation for the Karnaugh method
  46. 2.3.1.2 Three-variable Karnaugh map
  47. 2.3.1.3 Four-variable Karnaugh map
  48. 2.3.2 Foundations of the Karnaugh Method
  49. 2.3.3 Karnaugh Method for Incompletely Specified Functions
  50. 2.3.4 Five-variable Karnaugh map
  51. 2.3.5 Quine–McCluskey Method
  52. 2.3.6 Quine–McCluskey Method for Incompletely Specified Functions
  53. 2.3.7 Comparison between Karnaugh and Quine–McCluskey Methods
  54. 2.4 Summary
  55. Exercises
  56. 3. Physical Implementation of Logic Circuits
  57. 3.1 Digital Integrated Circuits
  58. 3.1.1 Logic Families
  59. 3.1.2 Basic Gates
  60. 3.1.3 Logic Levels and Voltage Levels
  61. 3.1.4 Delays
  62. 3.1.5 Power
  63. 3.1.6 Special Devices
  64. 3.1.6.1 Tri-state buffers
  65. 3.1.6.2 Incomplete devices
  66. 3.1.6.3 Transmission gates
  67. 3.2 Positive, Negative and Polarity Logic
  68. 3.3 Circuit Wiring Diagrams
  69. 3.4 Timing Characteristics
  70. 3.4.1 Analysis of Delays in Circuits
  71. 3.4.2 Spurious Transitions in Combinational Circuits
  72. 3.5 Direct Implementation
  73. 3.5.1 Implementation Using ROMs
  74. 3.5.2 Implementation Using Programmable Logic Arrays
  75. 3.5.3 Implementation Using Programmable Array Logic
  76. 3.6 Summary
  77. Exercises
  78. 4. Combinational Modules of Medium Complexity
  79. 4.1 Modularity
  80. 4.2 Decoders
  81. 4.2.1 Binary Decoders
  82. 4.2.2 Decoder Expansion
  83. 4.3 Encoders
  84. 4.3.1 Binary Encoders
  85. 4.4 Multiplexers
  86. 4.4.1 Implementation of Multiplexers
  87. 4.4.2 Types of Multiplexers
  88. 4.4.3 Expansion of Multiplexers
  89. 4.4.4 Multiplexing and Demultiplexing
  90. 4.5 Implementation of Logic Functions with Modules of Medium Complexity
  91. 4.5.1 Implementation with Decoders
  92. 4.5.2 Implementation with Multiplexers
  93. 4.6 Iterative Circuits
  94. 4.7 Summary
  95. Exercises
  96. 5. Arithmetic Circuits
  97. 5.1 Adders
  98. 5.1.1 Half-Adder
  99. 5.1.2 Full-Adder
  100. 5.1.3 N-bit Adder
  101. 5.1.4 Fast Adders
  102. 5.1.4.1 Carry-select adders
  103. 5.1.4.2 Carry-lookahead adders
  104. 5.2 Signed Numbers
  105. 5.2.1 Sign and Magnitude Encoding
  106. 5.2.2 2’s Complement Encoding
  107. 5.2.3 Sign Extension
  108. 5.2.4 Operations with Numbers in 2’s Complement
  109. 5.2.5 Overflow
  110. 5.2.6 Subtractors
  111. 5.2.7 Subtractor Circuit
  112. 5.2.8 Subtraction Using Adders
  113. 5.2.9 Adder/Subtractor Circuit
  114. 5.3 Multipliers and Dividers
  115. 5.3.1 Multiplication of Unsigned Numbers: Array Multiplier
  116. 5.3.2 Analysis of the Array Multiplier Circuit
  117. 5.3.3 Multiplication of Signed Numbers
  118. 5.3.4 Multiplication of Numbers in Sign-Magnitude Representation
  119. 5.3.5 Multiplication of Numbers in 2’s Complement Notation
  120. 5.3.6 Divisors
  121. 5.4 Fixed-Point
  122. 5.4.1 Fixed-Point Representation
  123. 5.4.2 Operations Under Fixed-Point Using Integer Units
  124. 5.4.3 Limitations of Fixed-Point Representation
  125. 5.5 Floating-Point Representations
  126. 5.5.1 Mantissa and Exponent
  127. 5.5.2 Floating-Point Operations
  128. 5.5.3 IEEE-754 Standard
  129. 5.6 Summary
  130. Exercises
  131. 6. Basic Sequential Circuits
  132. 6.1 Sequential Behaviour of Circuits
  133. 6.2 Latches
  134. 6.2.1 SR Latch
  135. 6.2.2 SR Latches with an Enable Signal
  136. 6.2.3 D Latch
  137. 6.3 Clock Signal
  138. 6.3.1 Global Synchronisation Signal
  139. 6.3.2 Characteristics of the Clock Signal
  140. 6.4 Flip-Flops
  141. 6.4.1 Types of Sampling
  142. 6.4.1.1 Masterr–slave flip-flops
  143. 6.4.1.2 Edge-triggered flip-flops
  144. 6.4.2 Types of Flip-Flops
  145. 6.4.2.1 D-type flip-flops
  146. 6.4.2.2 SR flip-flops
  147. 6.4.2.3 JK flip-flops
  148. 6.4.2.4 T flip-flops
  149. 6.4.3 Direct Inputs
  150. 6.4.4 Timing Parameters of Flip-Flops
  151. 6.5 Registers
  152. 6.5.1 Basic Registers
  153. 6.5.2 Register Control Signals
  154. 6.5.3 Shift Registers
  155. 6.5.4 Status Signals in Registers
  156. 6.6 Counters
  157. 6.6.1 Asynchronous Counters
  158. 6.6.1.1 Timing diagram
  159. 6.6.1.2 Maximum operating frequency
  160. 6.6.1.3 Asynchronous counter with a generic modulo
  161. 6.6.2 Synchronous Counters
  162. 6.6.2.1 Transient states in synchronous counters
  163. 6.6.2.2 Maximum operating frequency
  164. 6.6.2.3 Count control signal
  165. 6.6.2.4 Counters as registers
  166. 6.6.2.5 Synchronous counters with an arbitrary modulo
  167. 6.6.2.6 Synchronous counters with an arbitrary sequence
  168. 6.6.3 Interconnection of Counters
  169. 6.6.4 Applications of Counters
  170. 6.7 Register Transfers
  171. 6.7.1 Interconnection Using Multiplexers
  172. 6.7.2 Interconnection Using a Single Bus
  173. 6.7.3 Register Files
  174. 6.8 Memories
  175. 6.8.1 Random Access Memories
  176. 6.8.1.1 Random access memory operation
  177. 6.8.1.2 Comparison with a register file
  178. 6.8.1.3 Internal structure
  179. 6.8.2 Dynamic Memories
  180. 6.8.3 FIFO Memories
  181. 6.9 Summary
  182. Exercises
  183. 7. Analysis and Design of Sequential Circuits
  184. 7.1 Synchronous and Asynchronous Sequential Circuits
  185. 7.2 Mealy and Moore Machines
  186. 7.3 Design of Synchronous Sequential Circuits
  187. 7.3.1 State Diagrams
  188. 7.3.1.1 State diagram for the parity detector
  189. 7.3.1.2 State diagram for an alarm detector
  190. 7.3.2 Elimination of Redundant States
  191. 7.3.3 Specification Using Flowcharts
  192. 7.4 Implementation of Synchronous Sequential Circuits
  193. 7.4.1 State Assignment
  194. 7.4.1.1 State assignment using binary code
  195. 7.4.1.2 Encoding with one flip-flop per state
  196. 7.4.2 State Transition Table
  197. 7.4.3 Circuit Synthesis
  198. 7.4.3.1 Synthesis using D-type flip-flops
  199. 7.4.3.2 Circuit synthesis using JK flip-flops
  200. 7.4.3.3 Synthesis using one flip-flop per state
  201. 7.5 Techniques for the Implementation of Complex Sequential Circuits
  202. 7.5.1 Control Unit Implemented with Discrete Logic
  203. 7.5.2 Counter-based Control Units
  204. 7.5.3 Microprogrammed Control Unit
  205. 7.6 Summary
  206. Exercises
  207. 8. Register Transfers and Datapaths
  208. 8.1 Levels of Abstraction
  209. 8.2 Separation between Datapath and Control Circuit
  210. 8.2.1 Motivation Example
  211. 8.2.2 Datapath
  212. 8.2.3 Control Unit
  213. 8.3 Hardware Description Language
  214. 8.3.1 Register Transfer Language
  215. 8.3.2 Example: Greatest Common Divisor
  216. 8.4 Arithmetic Logic Units
  217. 8.4.1 Structure of an ALU
  218. 8.4.2 Flags
  219. 8.4.3 Arithmetic Unit
  220. 8.4.4 Logic Unit
  221. 8.4.5 Shift Unit
  222. 8.4.6 ALU Control Table
  223. 8.4.7 Example Revisited: Greatest Common Divisor
  224. 8.5 Summary
  225. Exercises
  226. 9. Computer Architecture
  227. 9.1 Historical Perspective
  228. 9.2 Types of Computers
  229. 9.3 Types of Processors
  230. 9.4 Internal Organisation of a Computer
  231. 9.5 Internal Structure of a Processor
  232. 9.6 External Interaction
  233. 9.7 Computer Abstraction Levels
  234. 9.8 Computer Components
  235. 9.9 Summary
  236. Exercises
  237. 10. Instruction Set Architectures
  238. 10.1 Programming Languages
  239. 10.2 Assembly Instructions
  240. 10.3 Specification of Operands
  241. 10.3.1 Internal Registers
  242. 10.3.2 Constants Specified in the Instruction
  243. 10.3.3 Memory and Input/Output Ports
  244. 10.3.4 Addressing Modes
  245. 10.3.5 Use of Stacks
  246. 10.3.6 Types of Operands
  247. 10.4 Instruction Encoding
  248. 10.5 Program Control Instructions
  249. 10.5.1 Jump Instructions
  250. 10.5.1.1 Conditional jumps
  251. 10.5.1.2 Absolute jumps and relative jumps
  252. 10.5.2 Subroutine Calls
  253. 10.5.3 Interrupts
  254. 10.6 Instruction Set for the P3 Processor
  255. 10.6.1 Arithmetic Instructions
  256. 10.6.2 Logic Instructions
  257. 10.6.3 Shift Instructions
  258. 10.6.4 Control Instructions
  259. 10.6.5 Data Transfer Instructions
  260. 10.6.6 Other Instructions
  261. 10.6.7 Examples of Use
  262. 10.7 Instruction Format for the P3 Processor
  263. 10.7.1 Instructions with No Operands
  264. 10.7.2 Instructions with One Operand
  265. 10.7.3 Instructions with Two Operands
  266. 10.7.4 Control Instructions
  267. 10.7.5 Encoding Examples
  268. 10.8 An Assembler for the P3 Processor
  269. 10.9 Summary
  270. Exercises
  271. 11. Programming in Assembly Language
  272. 11.1 Translation of High-level Language Constructs to Assembly
  273. 11.1.1 Variables
  274. 11.1.1.1 Simple types
  275. 11.1.1.2 Compound types
  276. 11.1.1.3 Arrays
  277. 11.1.1.4 Pointers
  278. 11.1.1.5 Variables in registers
  279. 11.1.2 Data Manipulation
  280. 11.1.2.1 Same width for variables and data word
  281. 11.1.2.2 Width of variables narrower than the data word
  282. 11.1.2.3 Width of variables wider than the data word
  283. 11.1.2.4 Floating-point data types
  284. 11.1.3 Control Structures
  285. 11.1.4 Subroutine Calls
  286. 11.1.4.1 Parameter passing using registers
  287. 11.1.4.2 Parameter passing using the memory
  288. 11.1.4.3 Parameter passing using the stack
  289. 11.2 Programming Techniques in Assembly
  290. 11.2.1 Structured Programming
  291. 11.2.2 Comments
  292. 11.2.3 Constants
  293. 11.2.4 Formatting Code
  294. 11.3 Programming Examples
  295. 11.3.1 List Manipulation
  296. 11.3.2 State Machine
  297. 11.4 Complete Illustrative Example
  298. 11.5 Summary
  299. Exercises
  300. 12. Internal Structure of a Processor
  301. 12.1 Datapath
  302. 12.1.1 Register File
  303. 12.1.2 Arithmetic Logic Unit
  304. 12.1.3 Instruction Register
  305. 12.1.4 Status Register
  306. 12.1.5 Interconnection Buses
  307. 12.1.6 Datapath Control
  308. 12.2 Control Unit
  309. 12.2.1 Microinstruction Format
  310. 12.2.2 Microsequencer
  311. 12.2.3 Conditions Test
  312. 12.2.4 Mapping Unit
  313. 12.2.5 Register File Control
  314. 12.2.6 Control Circuit
  315. 12.3 Microprogramming
  316. 12.3.1 Instruction Fetch
  317. 12.3.2 Operand Fetch
  318. 12.3.3 Execution of Instructions
  319. 12.3.4 Write Back
  320. 12.3.5 Testing for Interrupts
  321. 12.3.6 Generating the Microcode
  322. 12.4 Summary
  323. Exercises
  324. 13. Memory Systems
  325. 13.1 Organisation of Memory Systems
  326. 13.1.1 Memory Banks
  327. 13.1.2 Memory Maps
  328. 13.1.3 Generation of Control Signals
  329. 13.2 Memory Hierarchy
  330. 13.2.1 Caches
  331. 13.2.2 Virtual Memory
  332. 13.3 Organisation of Cache Systems
  333. 13.3.1 Cache Data Mapping
  334. 13.3.2 Cache Blocks
  335. 13.3.3 Replacement Policies
  336. 13.3.4 Write Policies
  337. 13.3.5 Control Bits
  338. 13.4 Virtual Memory
  339. 13.4.1 Page Tables
  340. 13.4.1.1 Flat page table
  341. 13.4.1.2 Hierarchical page table
  342. 13.4.2 Replacement Policy
  343. 13.4.3 Write Policy
  344. 13.4.4 Control Bits
  345. 13.4.5 Translation Lookaside Buffers
  346. 13.4.6 Interconnection of Virtual Memory with the Caches
  347. 13.5 Summary
  348. Exercises
  349. 14. Inputs, Outputs and Communications
  350. 14.1 Input/Output Architecture
  351. 14.1.1 Interfaces
  352. 14.1.2 Port Addressing Types
  353. 14.2 Peripherals
  354. 14.2.1 Keyboards
  355. 14.2.2 Monitors
  356. 14.2.3 Magnetic Disks and Solid-state Drives
  357. 14.3 Parallel Communication
  358. 14.3.1 Interfaces without Synchronisation
  359. 14.3.2 Data Strobing and Handshaking
  360. 14.3.2.1 Strobe synchronisation
  361. 14.3.2.2 Handshake protocols
  362. 14.3.3 Synchronous Interfaces
  363. 14.4 Serial Communications
  364. 14.4.1 Asynchronous Communication
  365. 14.4.2 Synchronous Communication
  366. 14.4.2.1 Character oriented protocols
  367. 14.4.2.2 Bit-oriented protocols
  368. 14.5 Interruption System
  369. 14.5.1 Interrupts Operation
  370. 14.5.2 Independent Interrupt Lines
  371. 14.5.3 Shared Interrupt Line
  372. 14.5.3.1 Non-vectored interrupts
  373. 14.5.3.2 Vectored interrupts
  374. 14.6 Data Transfer Modes
  375. 14.6.1 Program Controlled Transfer
  376. 14.6.2 Interrupt Controlled Transfer
  377. 14.6.3 Direct Memory Access
  378. 14.6.3.1 DMA architecture
  379. 14.6.3.2 The DMA controller
  380. 14.6.3.3 Types of DMA
  381. 14.6.4 Transfer Using an Input/Output Processor
  382. 14.7 Summary
  383. Exercises
  384. 15. Advanced Computer Architecture Topics
  385. 15.1 Microprocessor Performance
  386. 15.1.1 Limiting Performance Factors
  387. 15.1.2 CISC and RISC Computers
  388. 15.2 The P4 Processor
  389. 15.2.1 Addressing Modes
  390. 15.2.2 P4 Processor Instruction Set
  391. 15.2.2.1 Arithmetic and logic instructions
  392. 15.2.2.2 Shift instructions
  393. 15.2.2.3 Control instructions
  394. 15.2.2.4 Data transfer instructions
  395. 15.2.2.5 Other instructions
  396. 15.3 The P4 Processor Pipeline
  397. 15.3.1 Stages in the P4 Processor Pipeline
  398. 15.3.1.1 Instruction fetch
  399. 15.3.1.2 Decoding of the operation code and operand fetch
  400. 15.3.1.3 Instruction execution
  401. 15.3.1.4 Write-back
  402. 15.3.2 P4 Processor Complete Pipeline
  403. 15.3.3 Structural Conflicts
  404. 15.3.4 Data Conflicts
  405. 15.3.5 Control Conflicts
  406. 15.4 Performance Comparison between P3 and P4
  407. 15.5 Advanced Techniques for Exploiting Parallelism
  408. 15.6 Summary
  409. Exercises
  410. Appendix A The P3 Processor
  411. A.1 P3 Instruction Set
  412. A.1.1 Registers
  413. A.1.2 Status Bits
  414. A.1.3 Memory
  415. A.1.4 Inputs/Outputs
  416. A.1.5 Interrupts
  417. A.1.6 Instruction Set
  418. A.1.7 Addressing Modes
  419. A.2 P3 Implementation
  420. A.2.1 Assembler
  421. A.2.2 Peripherals
  422. A.2.2.1 Interrupt buttons
  423. A.2.2.2 Input and output devices
  424. A.2.3 P3 Card
  425. A.2.4 Simulator
  426. Index