The site of this course

1 intruction
What is computer architecture?
- Myopic view from years ago: Instruction Set Architecture (ISA)
- Updated view: Instruction Set Architecture, Microarchitecture, and Hardware
D. Bhandarkar, “A journey through history from mainframes to smartphones”, Electronic Design Process Symposium, Apr 2015. 7
J. Devietti, “CIS 501: Computer Architecture — Technology and Energy”,, Jan 2016
The CS252 Approach to Understanding Computer Architecture
- History
- Understand how the current architecture landscape was shaped by design decisions driven by earlier application, technology, or business concerns
- Don’t make the same mistakes
- Application and technology maturing can turn an old did-not-work/old bad idea into a new good idea
- Applications
- Need to understand demands of current and future applications to guide architecture design decisions
- Real applications are complex and include much legacy code (if only in OS and libraries)
- Benchmarks and kernels are often used instead of real applications in architectural studies; need to understand workload modeling
-
Technology Trends Computing technology is a very fast-moving field, so one must constantly track changing technology abilities to make futurelooking design decision
- A virtuous circle
- New technologies make new applications possible
- Revenues from popular applications fund and guide technology development
- Architectural Design Patterns
- We will understand computer architecture through longlived, recurring standard architectural design patterns for processors, memory systems, and interconnect
- Almost any “new” architecture can be understood as composition of standard architectural design patterns
- We will look at case studies of real machines and break the design down into standard architectural design patterns
-
Programming Models Major architectural design patterns are usually associated with an expected programming model Serial code :: Uniprocessors (C) Loop nests :: Vector machines (FORTRAN) Annotated loops :: Shared memory multiprocessors (OpenMP) Element function code :: GPUs (CUDA/OpenCL) Explicit message passing :: Clusters (MPI)
- Business Models
- Viability of different computer designs depends on the expected business model
- Some factors to consider: Volume: billions of units/year for smartphones or hundreds of units/ year for supercomputers Non-recurring engineering costs: new complex custom chip requires $10-50M or new FPGA board requires $10-100K
Appendix: The 1-2-3 of a Good Project Proposal
- Will have a list of example projects for consideration
- Can come up with your own projects
- Should be able to answer the following questions:
- What problem are you trying to solve?
- What idea/solution are you proposing?
- Are there other solutions that you know of? If so, compare and contrast.
- What is the potential upside using your idea/solution?
- How will you evaluate your idea/solution?
- What are the intermediary milestones to measure your progress?
Course Project (40%) • Pick a topic that could be a paper at a top-tier architecture conferences (ISCA, MICRO, ASPLOS, HPCA)
- ISCA
- MICRO
- ASPLOS
- HPCA
2 Instruction Set Architectures
Tell some history, too concise to understand the deep meaning of it !
3 From CISC to RISC
separate ISA from implementation (aka. microarchitecture)
3 From CISC to RISC II
6 Out-of-Order Processors
https://courses.cs.washington.edu/courses/cse590g/04sp/Smith-1982-Decoupled-Access-Execute-Computer-Architectures.pdf
Definition of a supercomputer:
- Fastest machine in world at given task
- A device to turn a compute-bound problem into an I/O bound problem
- Any machine costing $30M+
- Any machine designed by Seymour Cray
Out-of-Order Fades into Background until two major problme solved:
- Precise traps
- Imprecise traps complicate debugging and OS code
- Note, precise interrupts are relatively easy to provide
- Branch prediction
- Amount of exploitable instruction-level parallelism (ILP) limited by control hazards
Separating Completion from Commit
- Re-order buffer holds register results from completion until commit
- Entries allocated in program order during decode
- Buffers completed values and exception state until inorder commit point
- Completed values can be used by dependents before committed (bypassing)
- Each entry holds program counter, instruction type,
- destination register specifier and value if any, and exception status (info often compressed to save hardware)
- Memory reordering needs special data structures
- Speculative store address and data buffers
- Speculative load address and data buffers
In-Order Commit for Precise Traps
- In-order instruction fetch and decode, and dispatch to reservation stations inside reorder buffer
- Instructions issue from reservation stations out-of-order
- Out-of-order completion, values stored in temporary buffers
- Commit is in-order, checks for traps, and if none updates architectural state
7 Advanced Out-of-Order Designs
+--------------+
| PC |--------------------------
+------+-------+
|
+-------v---------+
| I-Cache | Fetch : instruction bit retrive
+-------+---------+ from instruction cache
|
+------v-------+
| Fetch Buffer|---------------------------
+------+-------+
|
+-------v---------+
| Decode/Rename | Decode : instruction dispatch to
+-------+---------+ appropriate issue buffer
|
+------v-------+
| Issue Buffer |--------------------------
+------+-------+
|
+-------v---------+ Execute: Instructions and operands issued to functional units.
| Functional Units| When execution completes, all results and exception flags are available.
+-------+---------+
|
+------v-------+
|Result Buffer |--------------------------
+------+-------+
|
+-------v---------+ Commit: Instruction irrevocably updates architectural state(aka “graduation”)
| Commit | ,or takes precise trap/interrupt.
+-------+---------+
|
+-------v-----------+
|Architectural State|----------------------
+-------------------+
| Object | In Order | Out of Order | |——–|———-|————–| | Phase |
本站所有文章转发 CSDN 将按侵权追究法律责任,其它情况随意。