# Computer Architecture and Organization

- Institution: IIT Kharagpur
- Department: Computer Science and Engineering
- Taught by: Prof. Indranil Sengupta, Prof. Kamalika Datta
- Level: Undergraduate
- Language: English
- Subjects: Computer science, Engineering
- Source: [NPTEL](https://nptel.ac.in/courses/106105163)
- Licence: [CC BY-NC-SA](https://nptel.ac.in/faq) (Non-commercial use only.)
- Syllabus: [at the source](https://nptel.ac.in/courses/106105163)
- Who can watch: Tweens profiles and older (sources give no ratings; placed by Invisible Network from the source's own words)

This course will discuss the basic concepts of computer architecture and organization that can help the participants to have a clear view as to how a computer system works. Examples and illustrations will be mostly based on a popular Reduced Instruction Set Computer (RISC) platform. Illustrative examples and illustrations will be provided to convey the concepts and challenges to the participants. Starting from the basics, the participants will be introduced to the state-of-the-art in this field.

INTENDED AUDIENCE : Computer Science and Engineering ; Information Technology ; Electronics and Communication Engineering ;Electrical Engineering

PREREQUISITES : Basic concepts in digital circuit design, Familiarity with a programming language like C or C++

INDUSTRY SUPPORT : TCS ; Wipro ; CTS ; Google ; Microsoft ; HP ; Intel

## Lectures

1. [Lecture 1: Evolution of Computer Systems](https://invisiblenetwork.ai/learn/nptel/106105163/8a613be2f783) (YouTube)
2. [Lecture 2: Basic Operation of A Computer](https://invisiblenetwork.ai/learn/nptel/106105163/8ec29659dae4) (YouTube)
3. [Lecture 3: Memory Addressing and Languages](https://invisiblenetwork.ai/learn/nptel/106105163/83f8ce6ed8e2) (YouTube)
4. [Lecture 4: Software and Architecture Types](https://invisiblenetwork.ai/learn/nptel/106105163/543823416a6c) (YouTube)
5. [Lecture 5: Instruction Set Architecture](https://invisiblenetwork.ai/learn/nptel/106105163/ea674b4c57c9) (YouTube)
6. [Lecture 6: Number Representation](https://invisiblenetwork.ai/learn/nptel/106105163/d8361fc07ea8) (YouTube)
7. [Lecture 7: Instruction Format and Addressing Modes](https://invisiblenetwork.ai/learn/nptel/106105163/2f7d2edf4895) (YouTube)
8. [Lecture 8: CISC and RISC Architecture](https://invisiblenetwork.ai/learn/nptel/106105163/900063fc96b5) (YouTube)
9. [Lecture 9: MIPS32 Instruction Set](https://invisiblenetwork.ai/learn/nptel/106105163/41a080f3a399) (YouTube)
10. [Lecture 10: MIPS Programming Examples](https://invisiblenetwork.ai/learn/nptel/106105163/e199cd6b74b2) (YouTube)
11. [Lecture 11: SPIM – A MIPS32 Simulator](https://invisiblenetwork.ai/learn/nptel/106105163/a47cc7507cc2) (YouTube)
12. [Lecture 12: Measuring CPU Performance](https://invisiblenetwork.ai/learn/nptel/106105163/b3a88c1a7f6f) (YouTube)
13. [Lecture 13: Choice of Benchmarks](https://invisiblenetwork.ai/learn/nptel/106105163/f1befb07bb92) (YouTube)
14. [Lecture 14: Summarizing Performance Results](https://invisiblenetwork.ai/learn/nptel/106105163/8da72d10f861) (YouTube)
15. [Lecture 15: Amadahl’s Law (Part 1)](https://invisiblenetwork.ai/learn/nptel/106105163/2d2d8e897c89) (YouTube)
16. [Lecture 16: Amadahl’s Law (Part 2)](https://invisiblenetwork.ai/learn/nptel/106105163/e4da76c62d37) (YouTube)
17. [Lecture 17: Design of Control Unit (Part - 1)](https://invisiblenetwork.ai/learn/nptel/106105163/7680344ba129) (YouTube)
18. [Lecture 18: Design of Control Unit (Part - 2)](https://invisiblenetwork.ai/learn/nptel/106105163/97d6d8f83595) (YouTube)
19. [Lecture 19: Design of Control Unit (Part - 3)](https://invisiblenetwork.ai/learn/nptel/106105163/b9f314f22c9b) (YouTube)
20. [Lecture 20: Design of Control Unit (Part - 4)](https://invisiblenetwork.ai/learn/nptel/106105163/2cc007621982) (YouTube)
21. [Lecture 21: Implementation of MIPS32 (Part - 1)](https://invisiblenetwork.ai/learn/nptel/106105163/669bd62a5aa6) (YouTube)
22. [Lecture 22: Implementation of MIPS32 (Part - 2)](https://invisiblenetwork.ai/learn/nptel/106105163/a5fb796d6425) (YouTube)
23. [Lecture 23: Processor Memory Interaction](https://invisiblenetwork.ai/learn/nptel/106105163/e510d21831f6) (YouTube)
24. [Lecture 24: Static and Dynamic RAM](https://invisiblenetwork.ai/learn/nptel/106105163/274ccd3981b4) (YouTube)
25. [Lecture 25: Asynchronous DRAM](https://invisiblenetwork.ai/learn/nptel/106105163/7a248a0cb8f5) (YouTube)
26. [Lecture 26: Synchronous DRAM](https://invisiblenetwork.ai/learn/nptel/106105163/2e222e9a3cf6) (YouTube)
27. [Lecture 27: Memory Interfacing and Addressing](https://invisiblenetwork.ai/learn/nptel/106105163/789bc4174d23) (YouTube)
28. [Lecture 28: Memory Hierarchy Design](https://invisiblenetwork.ai/learn/nptel/106105163/21a7ec10a954) (YouTube)
29. [Lecture 29: Memory Hierarchy Design (Contd.)](https://invisiblenetwork.ai/learn/nptel/106105163/2824070ec27f) (YouTube)
30. [Lecture 30: Cache Memory (Part - 1)](https://invisiblenetwork.ai/learn/nptel/106105163/5592b25d83a4) (YouTube)
31. [Lecture 31: Cache Memory (Part - 2)](https://invisiblenetwork.ai/learn/nptel/106105163/11b5c3bfe1ce) (YouTube)
32. [Lecture 32: Improving Cache Performance](https://invisiblenetwork.ai/learn/nptel/106105163/db04b2673f2a) (YouTube)
33. [Lecture 33: DESIGN OF ADDERS (PART 1)](https://invisiblenetwork.ai/learn/nptel/106105163/8fc5c7f6f672) (YouTube)
34. [Lecture 34: DESIGN OF ADDERS (PART 2)](https://invisiblenetwork.ai/learn/nptel/106105163/57c7822be256) (YouTube)
35. [Lecture 35: DESIGN OF MULTIPLIERS (PART 1)](https://invisiblenetwork.ai/learn/nptel/106105163/7ae557dcbe78) (YouTube)
36. [Lecture 36: DESIGN OF MULTIPLIERS (PART 2)](https://invisiblenetwork.ai/learn/nptel/106105163/34022682abd8) (YouTube)
37. [Lecture 37: DESIGN OF DIVIDERS](https://invisiblenetwork.ai/learn/nptel/106105163/2efbbc3524f5) (YouTube)
38. [Lecture 38: FLOATING-POINT NUMBERS](https://invisiblenetwork.ai/learn/nptel/106105163/4737ccc4a555) (YouTube)
39. [Lecture 39: FLOATING-POINT ARITHMETIC](https://invisiblenetwork.ai/learn/nptel/106105163/0adc051a2965) (YouTube)
40. [Lecture 40: BASIC PIPELINING CONCEPTS](https://invisiblenetwork.ai/learn/nptel/106105163/f60c3edf4c4f) (YouTube)
41. [Lecture 41: PIPELINE SCHEDULING](https://invisiblenetwork.ai/learn/nptel/106105163/f8e98bca1313) (YouTube)
42. [Lecture 42: ARITHMETIC PIPELINE](https://invisiblenetwork.ai/learn/nptel/106105163/5e8b765b1449) (YouTube)
43. [Lecture 43: SECONDARY STORAGE DEVICES](https://invisiblenetwork.ai/learn/nptel/106105163/9bf78fc6c2ab) (YouTube)
44. [Lecture 44: INPUT-OUTPUT ORGANIZATION](https://invisiblenetwork.ai/learn/nptel/106105163/e444ab46753b) (YouTube)
45. [Lecture 45: DATA TRANSFER TECHNIQUES](https://invisiblenetwork.ai/learn/nptel/106105163/0cb7955cc617) (YouTube)
46. [Lecture 46: INTERRUPT HANDLING (PART 1)](https://invisiblenetwork.ai/learn/nptel/106105163/5db4587b8159) (YouTube)
47. [Lecture 47: INTERRUPT HANDLING (PART 2)](https://invisiblenetwork.ai/learn/nptel/106105163/39eb3f3c0606) (YouTube)
48. [Lecture 48: DIRECT MEMORY ACCESS](https://invisiblenetwork.ai/learn/nptel/106105163/bd60e5decad9) (YouTube)
49. [Lecture 49: SOME EXAMPLE DEVICE INTERFACING](https://invisiblenetwork.ai/learn/nptel/106105163/5a11e23c557c) (YouTube)
50. [Lecture 50: EXERCISES ON I/O TRANSFER](https://invisiblenetwork.ai/learn/nptel/106105163/86842403aea1) (YouTube)
51. [Lecture 51: BUS STANDARDS](https://invisiblenetwork.ai/learn/nptel/106105163/0b3251aeebe5) (YouTube)
52. [Lecture 52: Universal Serial Bus (USB)](https://invisiblenetwork.ai/learn/nptel/106105163/2666e1b4532d) (YouTube)
53. [Lecture 53: PIPELINING THE MIPS32 DATA PATH](https://invisiblenetwork.ai/learn/nptel/106105163/7293437d165a) (YouTube)
54. [Lecture 54: MIPS PIPELINE (Contd.)](https://invisiblenetwork.ai/learn/nptel/106105163/70f273b59340) (YouTube)
55. [Lecture 55: PIPELINE HAZARDS (PART 1)](https://invisiblenetwork.ai/learn/nptel/106105163/4884ef9815d0) (YouTube)
56. [Lecture 56: PIPELINE HAZARDS (PART 2)](https://invisiblenetwork.ai/learn/nptel/106105163/04242ba54e06) (YouTube)
57. [Lecture 57: PIPELINE HAZARDS (PART 3)](https://invisiblenetwork.ai/learn/nptel/106105163/f78204906cc6) (YouTube)
58. [Lecture 58: PIPELINE HAZARDS (PART 4)](https://invisiblenetwork.ai/learn/nptel/106105163/bed98472c8d2) (YouTube)
59. [Lecture 59: MULTICYCLE OPERATIONS IN MIPS32](https://invisiblenetwork.ai/learn/nptel/106105163/7554293caf13) (YouTube)
60. [Lecture 60: EXPLOITING INSTRUCTION LEVEL PARALLELISM](https://invisiblenetwork.ai/learn/nptel/106105163/680f2c541eb3) (YouTube)
61. [Lecture 61: VECTOR PROCESSORS](https://invisiblenetwork.ai/learn/nptel/106105163/d8d80694a8d6) (YouTube)
62. [Lecture 62: MULTI-CORE PROCESSORS](https://invisiblenetwork.ai/learn/nptel/106105163/d2fd7fbc00af) (YouTube)
63. [Lecture 63: SOME CASE STUDIES](https://invisiblenetwork.ai/learn/nptel/106105163/48f5dbf372ac) (YouTube)
64. [Lecture 64: SUMMARIZATION OF THE COURSE](https://invisiblenetwork.ai/learn/nptel/106105163/0b6db50567fa) (YouTube)
