Week0 Basics 2023
Week0 Basics 2023
Week0 Basics 2023
Computer architecture
4 credits
No separate lab credits (No EG201P in timetable)
Nanditha Rao
1
Pre-requisites
●
Basics of digital design/logic design
– FSMs?
– Registers
– ALU? Decoders? Mux?
– Memories? (SRAM, DRAM)
●
C/Verilog/Python?
2
EG 211– Computer architecture
●
2 weeks: Topic 1: Introduction
Chapter-1,2 William Stallings
– Stored program concept, RISC vs CISC
– Harvard vs Von Neumann architecture
– History of architecture advances
– IAS computer architecture
– Assignment: Implementation
3
Brief Overview
Topic 4: MIPS
●
2 weeks: MIPS instruction set, MIPS assembly
programming, Procedure and stacks
●
1-2 weeks: data and control path design, ALU design
●
3-4 weeks: Pipelining, data and control path design,
hazards: data, control, structural hazard, Performance
evaluation
●
Assignment: Implementation
5
Brief Overview
Topic 5: Memory
●
3 weeks: Memory: Cache memory, memory hierarchies,
performance evaluation (AMAT), Read/Write stategies
●
Assignment: Implementation
●
2 weeks: Exceptions, forwarding,Loop
optimisation/unrolling
●
2 weeks: Branch predictors
●
1 week: Case study of a modern day processor
architecture
●
Overview of advanced computer architecture
6
References
●
Computer Organisation and Architecture - by William Stallings
●
Computer-Organization and Design- MIPS version -5th-Edition
Hennessy and Patterson
●
Digital design and computer architecture- Harris and Harris
●
Tools
– MARS MIPS Simulator
●
Youtube: Digital design and Computer architecture Prof Onur
Mutlu
●
Edx: MITx Computation Structures -2
7
●
Why study this course?
– Understand the functioning of a processor, memory and its
interfaces
– Follow up course: Advanced architecture course
●
CS or ECE?
– Taught as CS course in most institutes
– ECE contents can be slightly different
●
Course contents
– Differs based on the semester in which it is taught
– 2nd semester vs 7th semester
●
Method of teaching
– Classroom sessions
– Few modules will be recorded + live interaction
– All slides will be uploaded on LMS
– Use LMS or slack or whatsapp with Tas for discussions 8
Mode of teaching
●
Mostly Classroom
●
Flipped classroom mode for few modules (Data
path design, pipelining, Caches)
– 2 Recorded sessions per week. 30 - 40 mins each
– 1 classroom session for discussions and problem
solving
9
Tutorials/labs
●
No separate credit for lab
●
Activities to be done in tutorials
– Problem solving
– Discussion
– Tool demos
– Labs- RV-FPGA Labs
– Examples from the modern day processor architecture
– Case studies
– Demos by senior students on their work
– Prospectives and applications of computer architecture
10
Grading
Weightage
11
Policy towards cheating
●
All assignments/codes/reports will be run through a
plagiarism check tool
●
Cheating – 0 marks for the assignments
●
Write your own code!
●
Repeat offence/Cheating in exam – Grade penalty
12
Teaching assistants
●
Ravi Kiran Reddy Gogireddy MT2022515
●
Vinay Rayapati MT2022522
●
Brij Bidhin Desai IMT2021067
●
Rakshit.Bang IMT2020105
●
Varad Purushottam Bharadiya IMT2021532
●
Yash.Mogal IMT2020537
●
Yathin.Kumar IMT2020550
●
Saketh.Gajawada IMT2020531
●
Asmita Zigyasu IMT2020507
13
A motherboard
14
A processor core
What is a processor?
15
Different options for CS and ECE after learning architecture
Programming Architecture
languages – specifications
parallelism
Circuit design
Algorithms
Interconnect
design
Compiler
optimizations Power
optimizations
Memory
management Memory design
Simulation
models Device
technology
ISA
What are the other topics in
architecture?
17
●
Processor Microarchitecture:
– Register renaming using Register alias table,
– Multiple issue processors: Static mutliple issue- VLIW ,
– Dynamic multiple issue/Superscalar processors -7-stage pipeline,
Hardware of OOO – Re-order buffer and Reservation stations.
– Algorithms for Out-of-Order (OOO) Execution – Tomasulo with RoB
and without RoB, Scoreboard technique
– Dynamic scheduling/Tomasulo on multiple issue processors; Without
and with hardware speculation
– Overview of loop unrolling
– Memory disambiguation/dependencies in Out of order processors.
Usage of Load store queues.
●
Inclusive, exclusive caches Prefetching: Software and hardware
prefetching. Next line and stride prefetching
●
Cache coherence protocols in multi-core processors (MSI, MESI,
MOESI), consistency models. Multithreading. Parallelism in
instructions: SIMD/Vector processors, Memory banks, Main
memory management
●
Branch Predictors – 1 bit, 2 bit, dynamic, Branch target buffer,
branch history table, global predictor, Gshare, Pshare,
tournament predictor, perceptron based predictor
●
Virtual memory, Page tables, translation look aside buffer (TLB),
TLB + Cache. PIPT, VIVT, VIPT cache, AMD Opteron case study
●
From literature: Miscellaneous: Die stacking architecture, Fault
tolerant architecture, Cache compression and compaction: YACC,
SCC/DCC cache, Cache side channel attacks and security
●
Hardware accelerator/architectures for machine learning, Systolic
arrays, GPU/TPUs, Heterogeneous architectures
Backup
Course contents of other institutes
21
IIT Delhi
●
ELL 305/COL 216 – Computer architecture
– http://www.cse.iitd.ernet.in/cse/newcurriculum-contents/
newcourses.html#CSL211
– http://www.cse.iitd.ac.in/~srsarangi/courses/ell305_2019/index.html
– Number systems, floating point representations
– Assembly language, procedures: ARM assembly language
– SRAM, DRAM, and CAM Cells
– Adders, multipliers
– SimpleRisc Processor, Pipelining, Hazards
– Memory system, Caches, Virtual memory
– Multi-core processors, Cache coherency
– Vector instructions, GPU
– Interconnects
IIT Delhi
●
ELL 782 - Advanced Computer architecture
– http://www.cse.iitd.ac.in/~sumantra/courses/arch/arch.h
tml
– Pipelining,
– Hazards
– Caches
– Multi-core
– Vector processing
– SIMD, MIMD
– Dynamic scheduling
IIT Bombay/Mandi
●
CP-226 Computer architecture
●
https://www.ee.iitb.ac.in/~viren/Courses/2013/CA-iitmandi.htm
●
1. Digital Logic and Digital Systems:
– Overview and history of computer architecture, combinational vs sequential logic
●
CS/ECE 552 - Introduction to Computer Architecture.
– https://guide.wisc.edu/courses/comp_sci/
– http://homepages.cae.wisc.edu/~hu/ece552/description.html
– https://ece552.ece.wisc.edu/video.shtml
●
ALU design: Adders, subtracters, logic operations control
structures and microprogramming;
●
MIPS: Processor design, instruction set design, and
addressing;Instruction formats, instruction sets and their design
●
Memory management, caches, and memory hierarchies; and
interrupts and I/O structures. E C E 551 or knowledge of Verilog
is recommended.
Wisconsin
●
CS/ECE 752 - Advanced Computer Architecture I.
●
https://ece752.ece.wisc.edu/#description
●
ECE/CS 552 is a firm prerequisite; if you are a transfer or graduate student
without this course background, you should be very familiar with logic design
and should have already designed a working instruction set processor. You
should be very familiar with pipelined execution, data hazards, and basic control
speculation, along with simple cache memories and virtual memory. If you do
not have this background, you will have to do some catch-up reading to keep up
in this course.
– Pipelining Review from ECE 552, Lecture 15: Pipelining, Lecture 16: Pipeline Hazards,
– Lecture 04: Pipelining to Superscalar, Lecture 05: Superscalar Organization
– Lecture 06: Caches and Memory Hierarchy from ECE 552, Lecture 19: Cache Concepts
– Lecture 20: Cache Design, Lecture 21: Cache Performance
– Lecture 22: Virtual Memory, Lecture 07: Instruction Flow
– Lecture 08: Register Data Flow, Lecture 09: Memory Data Flow
– Lecture 10: Pentium Pro Case Study, Lecture 11: Advanced Caches
– Lecture 12: Main Memory
– Lecture 13: Advanced Microarchitecture,
– Lecture 14: Executing Multiple Threads
Wisconsin
●
CS/ECE 757 - Advanced Computer Architecture II.
●
https://ece752.ece.wisc.edu/#description
●
Analyze pertinent research papers, including writing reviews of them.
– Understand how semiconductor technology and information technology
applications influence parallel computer systems.
– Implement parallel computer programs in multiple paradigms (e.g., data
parallel, shared-memory, and message-passing) and understand trade-offs
among the paradigms.
– Understand and evaluate different synchronization mechanisms, memory
consistency models, cache coherence protocols
– Understand and evaluate interconnection network goals and mechanisms.
– Analyze and evaluate parallel computer systems by user and enhancing at
least one simulator of such systems.
– Understand and evaluate emerging heterogeneous parallelism design
approaches, e.g., single instruction multiple data (SIMD), single instruction
multiple thread (SIMT), and other accelerators.
– Either (a) create a novel parallel computer architecture research idea