User Tools

Site Tools


buzzword

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
buzzword [2015/01/16 19:44]
kevincha
buzzword [2015/02/02 19:23]
rachata
Line 107: Line 107:
 ===== Lecture 3 (1/17 Fri.) ===== ===== Lecture 3 (1/17 Fri.) =====
  
- * Microarchitecture+   * 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
  
- * Three major tradeoffs of computer architecture+===== Lecture 4 (1/21 Wed.) =====
  
- ​* ​Macro-architecture+  * Fixed vs. variable length instruction 
 +  ​* ​Huffman encoding 
 +  * Uniform vs. non-uniform decode 
 +  * Registers 
 +    * Tradeoffs between number of registers 
 +  * Alignments 
 +    * How does MIPS load words across alignment the boundary
  
- * LC-3b ISA+===== Lecture 5 (1/26 Mon.) =====
  
- ​* ​Unused ​instructions+  * Tradeoffs in ISA: Instruction length 
 +    * Uniform vs. non-uniform 
 +  ​* ​Design point/Use cases 
 +    * What dictates the design point? 
 +  * Architectural states 
 +  * uArch 
 +    * How to implement the ISA in the uArch 
 +  * Different stages in the uArch 
 +  * Clock cycles 
 +  * Multi-cycle machine 
 +  * Datapath and control logic 
 +    * Control signals 
 +  * Execution time of instructions/program 
 +    * Metrics and what do they means 
 +  * Instruction processing 
 +    * Fetch 
 +    * Decode 
 +    * Execute 
 +    * Memory fetch 
 +    * Writeback 
 +  * Encoding and semantics 
 +  * Different types of instructions (I-type, R-type, etc.) 
 +  * Control flow instructions 
 +  * Non-control flow instructions 
 +  * Delayed slot/​Delayed branch 
 +  * Single cycle control logic 
 +  * Lockstep 
 +  * Critical path analysis 
 +    * Critical path of a single cycle processor 
 +  * What is in the control signals? 
 +    * Combinational logic & Sequential logic 
 +  * Control store 
 +  * Tradeoffs of a single cycle uarch 
 +  * Design principles 
 +    * Common case design 
 +    * Critical path design 
 +    * Balanced designs 
 +    * Dynamic power/​Static power 
 +      * Increases in power due to frequency
  
- * Bit steering+===== Lecture 6 (1/28 Mon.) =====
  
- * Instruction processing ​style+  * Design principles 
 +    * Common case design 
 +    * Critical path design 
 +    * Balanced designs 
 +  * Multi cycle design 
 +  * Microcoded/​Microprogrammed machines 
 +    * States 
 +    * Translation from one state to another 
 +    * Microinstructions 
 +    * Microsequencing 
 +    * Control store - Product control signals 
 +    * Microsequencer ​   
 +    * Control signal 
 +      * What do they have to control? ​    
 +  * Instruction processing ​cycle 
 +  * Latch signals 
 +  * State machine 
 +  * State variables 
 +  * Condition code 
 +  * Steering bits 
 +  * Branch enable logic 
 +  * Difference between gating and loading? (write enable vs. driving the bus) 
 +  * Memory mapped I/O 
 +  * Hardwired logic 
 +    * What control signals come from hardwired logic? 
 +  * Variable latency memory 
 +  * Handling interrupts 
 +  * Difference betwen interrupts and exceptions 
 +  * Emulator (i.e. uCode allots minimal datapath to emulate the ISA) 
 +  * Updating machine behavior 
 +  * Horizontal microcode 
 +  * Vertical microcode 
 +  * Primitives 
 +   
 +===== Lecture 7 (1/30 Fri.) =====
  
- ​* ​0,1,2,3 address machines+  * Emulator (i.e. uCode allots minimal datapath to emulate the ISA) 
 +  ​* ​Updating machine behavior 
 +  * Horizontal microcode 
 +  * Vertical microcode 
 +  * Primitives 
 +  * nanocode and millicode 
 +    * what are the differences between nano/​milli/​microcode 
 +  * microprogrammed vs. hardwire control 
 +  * Pipelining 
 +  * Limitations of the multi-programmed design 
 +    * Idle resources 
 +  * Throughput of a pipelined design 
 +    * What dictacts the throughput of a pipelined design? 
 +  * Latency of the pipelined design 
 +  * Dependency 
 +  * Overhead of pipelining 
 +    * Latch cost? 
 +  * Data forwarding/​bypassing 
 +  * What are the ideal pipeline? 
 +  * External fragmentation 
 +  * Issues in pipeline designs 
 +    * Stalling 
 +      * Dependency (Hazard) 
 +        * Flow dependence 
 +        * Output dependence 
 +        * Anti dependence 
 +        * How to handle them? 
 +    * Resource contention 
 +    * Keeping the pipeline full 
 +    * Handling exception/​interrupts 
 +    * Pipeline flush 
 +    * Speculation
  
- * Stack machine+   
 +   
 +===== Lecture 8 (2/2 Mon.) =====  
  
- ​* ​Accumulator machine +  * Interlocking 
- +  ​* ​Multipath execution 
- ​* ​2-operand machine +  * Fine grain multithreading 
- +  No-op (Bubbles in the pipeline) 
- ​* ​3-operand machine +  Valid bits in the instructions 
- +  Branch prediction 
- ​* ​Tradeoffs between 0,1,2,3 address machines +  Different types of data dependence 
- +  Pipeline stalls 
- ​* ​Postfix notation +    bubbles 
- +    How to handle stalls 
- ​* ​Instructions/​Opcode/​Operade specifiers (i.e. addressing modes)  +    Stall conditions 
- +    Stall signals 
- ​* ​Simply vs. complex data type (and their tradeoffs) +    Dependences 
- +      Distant between dependences 
- ​* ​Semantic gap and level +    Data forwarding/bypassing 
- +    * Maintaining the correct dataflow 
- ​* ​Translation layer +  Different ways to design ​data forwarding path/logic 
- +  Different techniques to handle interlockings 
- ​* ​Addressability +    SW based 
- +    HW based 
- ​* ​Byte/bit addressable machines +  Profiling 
- +    Static profiling 
- ​* ​Virtual memory +    Helps from the software ​(compiler
- +      Superblock optimization 
- ​* ​Big/little endian +      Analyzing basic blocks 
- +  How to deal with branches? 
- ​* ​Benefits of having registers (data locality) +    Branch prediction 
- +    Delayed branching ​(branch delay slot
- ​* ​Programmer visible (Architectural) state +    Forward control flow/​backward control flow 
- +    Branch prediction accuracy 
- ​* ​Programmers can access this directly +  Profile guided code positioning 
- +    Based on the profile infoposition the code based on it 
- ​* ​What are the benefits? +    Try to make the next sequential instruction be the next instto be executed 
- +  Predicate combining (combine predicate for a branch instruction) 
- ​* ​Microarchitectural state +  Predicated execution (control dependence becomes data dependence) 
- +   
- ​* ​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 vsnon-vectored interrupts +
- +
- ​* ​Complex vssimple instructions +
- +
- ​* ​Tradeoffs +
- +
- ​* ​RISC vs. CISC +
- +
- * Tradeoff +
- +
- * Backward compatibility +
- +
- * Performance +
- +
- * Optimization opportunity +
- +
- * Translation+
buzzword.txt · Last modified: 2015/04/27 18:20 by rachata