Pentium™ Processor
1st Edition
Optimization Tools
Description
Pentium Processor Optimization Tools covers advanced program optimization techniques for the Intel 80x86 family of chips, including the Pentium. The book starts by providing a review and history of the optimization tool. The text then discusses the 80x86 programming language; Pentium and its tools; and the superscalar Pentium programming. The operation of the floating-point unit; techniques for including assembly language routines in C or C++ programs; and the protected-mode programming are also considered. The book further tackles optimizations and code alignment; as well as the background and technical capabilities of the PowerPC vs. the Pentium and their future technical directions. Computer programmers and students taking related courses will find the book invaluable.
Table of Contents
Introduction
Who Is This Book For
What Is on the Disk
Why Learn Assembly Language for the Pentium
How to Proceed
Acknowledgments
I Review and Historical Context
1 Number Systems
Hex
Signed Numbers
Numeric Overflow
Data Sizes
Little Endian vs. Big Endian
2 What is Assembly
Introduction
Tools and Terminology
What Are Compilers, Interpreters and Assemblers
3 The 8086 Family History and Architecture
Compatibility Lessons
Math Co-processors
The 80286
32-bit 80386
RISCy 80486
The 80586
The Competition
The P6
II 80x86 Family Background
4 8086 Architecture and Instruction Set
8088 Architecture
The 8088 Instruction Set
Program Control and Branching
Flag Manipulations
BCD Instructions
String Instructions
Interrupts
Miscellaneous Instructions
Flag Summary
5 Writing Beginning Programs
What Do All Those Statements Mean
Labels and Identifiers
Procedures
@Data
Defining Data Items
Using DOS System Functions
The END Directive
Memory Models
6 Assembly Tools
Editing
Assembling
Linking
Debugging
DEBUG32
7 The Instruction Set Evolves: The 186 to the 386
The Lost Brother, the 80186
The 80286
The 80386
New 386 Addressing Modes
New 386 Instructions
Protected Mode
III Introduction to Pentium and Tools
8 The 80486 and Pentium
Pentium
Bigger Cache
New Pentium Instructions
Summary
9 Superscalar Programming
Dual Integer Pipelines
Branch Prediction Logic
Optimized Cycle Times
10 Integer and Floating-Point Pipeline Operation
The Memory Cache
Pipelines
Address Generation Interlock AGI)
Paired Pipelines
486 Pipeline Delays
Pentium Pipeline Delays
Pentium Floating-Point Pipeline
FPU Pipeline Delays
Concurrent Integer and FPU Processing
11 Using the Pentium Optimizer Program
How It Works
Address Generation Interlocks
ICE
12 Timing with a Software Timer
Built-in Pentium Timer
Software Timer
Timer Software Function Reference
Percent Speed Changes
IV Superscalar Pentium Programming
13 Optimization Warm-Ups
String Instruction Optimizations
14 String Search and Translate
String Search
String Translations
Atomic Programming
Coding Challenge
Reality Check
Case-Independent String Searching
Case-Independent String Scan
Case-Independent String Compare
Conclusions
15 Checksums and Extended Precision Addition
Step 1
Step 2
Step 3
Step 4
Step 5
Step 6
Coming Completely Undone
Summary
False Steps
Extended Precision Addition
V Advanced Topics
16 Floating-Point Math
FPU Matrix Optimizations
Which Array Declaration Is Best
Optimizing with Assembly
17 Interfacing to C
Inline Assembly
Inline Assembly Example
Linking Separate Modules
Calling Conventions
Full C-to-Assembly Templates
Examples of Calling Assembly Routines from C
Using the Extended PROC directive
Fastcall
Fastcall Registers
Timing C Code
18 Protected-Mode Programming
Introduction to Protected Mode
DPMI, DOS Protected-Mode Interface
Protected-Mode Segments
Converting Code to Protected Mode
Mixed 16-Bit and 32-Bit Protected-Mode Programming
Full Segment Definitions
Protected Mode Timing
32-bit Protected-Mode Code Template
Large Data Segments
Timing 32-Bit Code
Cloaking Developers Toolkit
19 Final Notes and Optimizations
Speed vs. Code Size
LEA, the Multi-purpose Instruction
Code and Data Alignment
Local Stack Variables
Measuring and Correcting the Data Misalignment Penalty
Code Alignment
Further Reading
Where We've Been
VI PowerPC vs. Pentium 20
20. Power PC VS. PENTIUM
What Is RISC
What Is CISC
What Is RISC, Really
Which Is Better, RISC or CISC
Is the Pentium RISC or CISC
Superscalar Processors
Superscalar Techniques and Terminology
What Is in the PowerPC
Is the PowerPC Less Expensive
Future Processor Designs
Appendices
A Instruction Set Reference
Part I
Part II
B Optimization Cross-Reference by Instruction
C Optimization Guidelines by CPU
8088
286
386
486
Pentium
D Simple Instructions for Pentium Pairing
E Instruction Pairing Rules for Pentium
F Single-Byte Instructions
Pairable One-byte Instructions
Non-pairable One-byte Instructions
Prefix Bytes
G Quick Reference for Important Instruction Timings
Important Combinations for the Pentium
H Undocumented Pentium Registers
I Debug32 Command Summary
New Instructions
J Improving Performance
Other Pentium-class Machines
K Glossary of Terms
L Products Mentioned
Index
Details
- No. of pages:
- 406
- Language:
- English
- Copyright:
- © Academic Press 1995
- Published:
- 28th October 1994
- Imprint:
- Academic Press
- eBook ISBN:
- 9781483214252