antelope progress mmu and cache->datapath interfaces almost complete datapath moving slowly,...

20
Antelope Progress MMU and Cache->Datapath interfaces almost complete Datapath moving slowly, control issues keep surfacing Hazard Detection/Prevention coming along IRQ/Exception handler is somewhat complete Instruction Sequencer built, helps with multicycle instructions and IRQ/Exception sequences

Upload: tiffany-price

Post on 19-Jan-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Antelope Progress MMU and Cache->Datapath interfaces almost complete Datapath moving slowly, control issues keep surfacing Hazard Detection/Prevention

Antelope Progress

• MMU and Cache->Datapath interfaces almost complete

• Datapath moving slowly, control issues keep surfacing

• Hazard Detection/Prevention coming along• IRQ/Exception handler is somewhat complete• Instruction Sequencer built, helps with multicycle

instructions and IRQ/Exception sequences

Page 2: Antelope Progress MMU and Cache->Datapath interfaces almost complete Datapath moving slowly, control issues keep surfacing Hazard Detection/Prevention

Main Memory

• Controlled by State Machine

• Successfully simulated with delays

• Left to do: Cache<-> Memory interface– State machine

Page 3: Antelope Progress MMU and Cache->Datapath interfaces almost complete Datapath moving slowly, control issues keep surfacing Hazard Detection/Prevention

Memory FSM

• Signals In:– Instruction read, Data read, Data write– Reset

• Signals out:– DataAddr, InstrAddr– select, r_w– valid, done

Page 4: Antelope Progress MMU and Cache->Datapath interfaces almost complete Datapath moving slowly, control issues keep surfacing Hazard Detection/Prevention
Page 5: Antelope Progress MMU and Cache->Datapath interfaces almost complete Datapath moving slowly, control issues keep surfacing Hazard Detection/Prevention
Page 6: Antelope Progress MMU and Cache->Datapath interfaces almost complete Datapath moving slowly, control issues keep surfacing Hazard Detection/Prevention

Memory Delay

• Gen_lib component: delay– Rise delay = 80 ns– Fall delay = 0 ns

• State Machine sets signal high and then waits for the signal to propagate through

• Loops in wait state

Page 7: Antelope Progress MMU and Cache->Datapath interfaces almost complete Datapath moving slowly, control issues keep surfacing Hazard Detection/Prevention

8 bit Cache Blocks(to enable byte transfer)

Page 8: Antelope Progress MMU and Cache->Datapath interfaces almost complete Datapath moving slowly, control issues keep surfacing Hazard Detection/Prevention

Cache <-> Memory

• Signals out:– Pipeline hold– LoadMem (cache write)

• Signals in:– Data write, Data read, Instruction read– Valid, Done– Dirty, hit

Page 9: Antelope Progress MMU and Cache->Datapath interfaces almost complete Datapath moving slowly, control issues keep surfacing Hazard Detection/Prevention

Instruction Sequencer

• Found that many multicycle instructions can be broken into a sequence of single cycle instructions.

• Wanted a way to trigger a sequence of instructions to run through the pipeline.

• Example: LDR/STR -> load the sequencer rom with an add/sub instruction and a custom ldr/str instruction. Activate the sequencer whenever LDR/STR runs through pipe.

Page 10: Antelope Progress MMU and Cache->Datapath interfaces almost complete Datapath moving slowly, control issues keep surfacing Hazard Detection/Prevention

Sequencer Logic

Page 11: Antelope Progress MMU and Cache->Datapath interfaces almost complete Datapath moving slowly, control issues keep surfacing Hazard Detection/Prevention

Sequencer Integration

• Sequencer is just placed in the fetch stage in parallel with the instruction cache.

• The sequencer determines whether or not it is in control of the datapath.

• If a sequence is requested, the PC is held at it’s current value (though I may have to decrement it…), and the sequencer inserts instructions into the datapath until it is done.

Page 12: Antelope Progress MMU and Cache->Datapath interfaces almost complete Datapath moving slowly, control issues keep surfacing Hazard Detection/Prevention

Datapath

Page 13: Antelope Progress MMU and Cache->Datapath interfaces almost complete Datapath moving slowly, control issues keep surfacing Hazard Detection/Prevention

Hazard Checking Logic

Checks to see if Rd (destination register) is read from in next 2

commands

Page 14: Antelope Progress MMU and Cache->Datapath interfaces almost complete Datapath moving slowly, control issues keep surfacing Hazard Detection/Prevention

Original Design

Page 15: Antelope Progress MMU and Cache->Datapath interfaces almost complete Datapath moving slowly, control issues keep surfacing Hazard Detection/Prevention

Overview

Page 16: Antelope Progress MMU and Cache->Datapath interfaces almost complete Datapath moving slowly, control issues keep surfacing Hazard Detection/Prevention

Block Data Transfer

Page 17: Antelope Progress MMU and Cache->Datapath interfaces almost complete Datapath moving slowly, control issues keep surfacing Hazard Detection/Prevention

Interrupt Handler

Component must handle the following seven cases:1. Reset (Highest Priority)

2. Data Abort

3. FIQ

4. IRQ

5. Prefetch Abort

6. Undefined Instruction

7. Software Interrupt (SWI) (Lowest Priority)

Page 18: Antelope Progress MMU and Cache->Datapath interfaces almost complete Datapath moving slowly, control issues keep surfacing Hazard Detection/Prevention

Implementation

• One ROM file handles memory addresses.

• 3-bit input leads to 32-bit address for PC.

• Second ROM file handles CPSR alterations.

• 4-bit input leads to lower 8 bits of CPSR.

• Priorities of the interrupts are handled with CLZ functionality.

• Lastly, no interrupts leads to “Active = 0”.

Page 19: Antelope Progress MMU and Cache->Datapath interfaces almost complete Datapath moving slowly, control issues keep surfacing Hazard Detection/Prevention
Page 20: Antelope Progress MMU and Cache->Datapath interfaces almost complete Datapath moving slowly, control issues keep surfacing Hazard Detection/Prevention

To do:

• Finish everything.