Presentation on theme: "TITAC: Design of a QDI microprocessor TITAC: Tokyo Institute of Technology TITAC-1: IEEE Design & Test (Summer 94) 1. main goal: explore the design methodology."— Presentation transcript:
TITAC: Design of a QDI microprocessor TITAC: Tokyo Institute of Technology TITAC-1: IEEE Design & Test (Summer 94) 1. main goal: explore the design methodology 2. 8-bit Von Neumann microprocessor is designed TITAC-2: ICCD’97 32-bit fully functional microprocessor based on MIPS 2000 Reading 6
Outline Goal of TITAC-1 Organization and Instruction sets Design methodology 1. control path 2. data path
Goal of TITAC-1 Not to design a fully functional microprocessor but to explore the design methodology A. determine suitable specification B. Implementation. Establish a library of building blocks for design automation of Async. VLSI systems.
Organization of TITAC TITAC is an 8-bit Von Neumann microprocessor Single-accumulator architecture TITAC consists of * Control section: 1. controls data flow of datapath section 2. two controllers: hardwired and microprogrammed A. selectable by an external switch. B. designed by two authors independently. * Datapath section:
Organization of TITAC Datapath section: 1. An ALU (Arithmetic Logic Unit). 2. Instruction Register (IR) 3. One Accumulator (Acc) 4. Program Counter (PC) 5. Memory Address Register (MAR) 6. Input Buffer (In) 7. Output Buffer (Out) 8. Memory Interface (to Main Memory) See Fig 1(TITAC organization) in pp. 53
Protocol of TITAC Two phase, event-driven scheme: ( i.e. four-phase handshaking or return to zero) A: working phase: 1: working transient 2: working stable B: idle phase: 3: idle transient 4: idle stable
Specification: Data dependency graph High Performance ==> Execute as many micro-operations as possible. Need to analyze dependency relations: Use dependency graph to analyze micro-operations. Five types of primitive elements: (see Fig 3) A. micro-operations: register to register data transfer B. fork: parallel execution threads C. join: synchronization of parallel execution D. select: condition branch. E. merge: merge signals. Example: DDG of jmp instruction (Fig 4).
Data dependency graph: Jump Write After Read Write After Write
Implementation: dependency graph Five types of primitive elements: (see Fig 3) A. micro-operations: Q-element (read + write). B. fork: fan-out wires C. join: Muller’s C element D. select: decoder (one out of n code) E. merge: EX-OR Example: Fig 5.