XJTU-ICS Textbook
Course Notes
1.
Overview
1.1.
Why ICS
1.2.
How to Start
1.3.
Coding is All You Need
2.
Representing and Manipulating Information
2.1.
Information Storage
2.2.
Integer Representations
2.3.
Integer Arithmetic
3.
Machine-Level Representation of Programs
3.1.
A Historical Perspective
3.2.
Program Encodings
3.3.
Data Formats
3.4.
Accessing Information
3.5.
Arithmetic and Logical Operations
3.6.
Control
3.7.
Procedures
3.8.
Array Allocation and Access
3.9.
Heterogeneous Data Structures
3.10.
Advanced Topic
4.
Processor Architecture
4.1.
TheY86-64 Instruction Set Architecture
4.2.
Logic Design and the Hardware Control Language HCL
4.3.
Sequential Y86-64 Implementations
4.4.
General Principles of Pipelining
4.5.
Pipelined Y86-64 Implementations
4.6.
Summary
5.
Optimizing Program Performance
5.1.
Capabilities and Limitations of Optimizing Compilers
5.2.
Optimization Blocker
5.3.
Understanding Modern Processors
5.4.
Loop Unrolling
5.5.
Enhancing Parallelism
5.6.
Understanding Memory Performance
6.
The Memory Hierarchy
6.1.
Storage Technologies
6.2.
Locality
6.3.
The Memory Hierarchy
6.4.
Cache Memories
6.5.
The Impact of Caches on Program Performance
Dev Ops
7.
Develop Ops
7.1.
How to Use VSCode
7.2.
Windows? Linux!
7.3.
VSCode? Vim!
7.4.
G__hub? Github!
7.5.
SSH: She’s Settled for Him
7.6.
Git: Girlfriend Is Tricky
7.7.
Google Style Guide
Contributors
Light
Rust
Coal
Navy
Ayu
Introduction to Computer System
Chapter 4.3 Sequential Y86-64 Implementations
© 2025. ICS Team. All rights reserved.