Antelope Progress MMU and Cache->Datapath interfaces almost complete Datapath moving slowly, control...

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

Transcript of Antelope Progress MMU and Cache->Datapath interfaces almost complete Datapath moving slowly, control...

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.