This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
buzzword [2015/01/14 19:44] rachata |
buzzword [2015/01/16 19:47] kevincha [Lecture 3 (1/17 Fri.)] |
||
---|---|---|---|
Line 78: | Line 78: | ||
* DIfferent types of data flow nodes (conditional/relational/barrier) | * DIfferent types of data flow nodes (conditional/relational/barrier) | ||
* How to do transactional transaction in dataflow? | * How to do transactional transaction in dataflow? | ||
- | Example: bank transactions | + | * Example: bank transactions |
* Tradeoffs between control-driven and data-driven | * Tradeoffs between control-driven and data-driven | ||
* What are easier to program? | * What are easier to program? | ||
Line 104: | Line 104: | ||
* What are not a part of the ISA? (what goes inside: uArch techniques) | * What are not a part of the ISA? (what goes inside: uArch techniques) | ||
* Things that are not suppose to be visible to the programmer/software but typically make the processor faster and/or consumes less power and/or less complex | * Things that are not suppose to be visible to the programmer/software but typically make the processor faster and/or consumes less power and/or less complex | ||
+ | |||
+ | ===== Lecture 3 (1/17 Fri.) ===== | ||
+ | |||
+ | * Microarchitecture | ||
+ | * Three major tradeoffs of computer architecture | ||
+ | * Macro-architecture | ||
+ | * LC-3b ISA | ||
+ | * Unused instructions | ||
+ | * Bit steering | ||
+ | * Instruction processing style | ||
+ | * 0,1,2,3 address machines | ||
+ | * Stack machine | ||
+ | * Accumulator machine | ||
+ | * 2-operand machine | ||
+ | * 3-operand machine | ||
+ | * Tradeoffs between 0,1,2,3 address machines | ||
+ | * Postfix notation | ||
+ | * Instructions/Opcode/Operade specifiers (i.e. addressing modes) | ||
+ | * Simply vs. complex data type (and their tradeoffs) | ||
+ | * Semantic gap and level | ||
+ | * Translation layer | ||
+ | * Addressability | ||
+ | * Byte/bit addressable machines | ||
+ | * Virtual memory | ||
+ | * Big/little endian | ||
+ | * Benefits of having registers (data locality) | ||
+ | * Programmer visible (Architectural) state | ||
+ | * Programmers can access this directly | ||
+ | * What are the benefits? | ||
+ | * Microarchitectural state | ||
+ | * Programmers cannot access this directly | ||
+ | * Evolution of registers (from accumulators to registers) | ||
+ | * Different types of instructions | ||
+ | * Control instructions | ||
+ | * Data instructions | ||
+ | * Operation instructions | ||
+ | * Addressing modes | ||
+ | * Tradeoffs (complexity, flexibility, etc.) | ||
+ | * Orthogonal ISA | ||
+ | * Addressing modes that are orthogonal to instruction types | ||
+ | * I/O devices | ||
+ | * Vectored vs. non-vectored interrupts | ||
+ | * Complex vs. simple instructions | ||
+ | * Tradeoffs | ||
+ | * RISC vs. CISC | ||
+ | * Tradeoff | ||
+ | * Backward compatibility | ||
+ | * Performance | ||
+ | * Optimization opportunity | ||
+ | * Translation | ||
+ |