OpenCores
URL https://opencores.org/ocsvn/pavr/pavr/trunk

Subversion Repositories pavr

[/] [pavr/] [web_uploads/] [todo.html] - Blame information for rev 8

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 8 root
<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2
<html>
3
 
4
<head>
5
<title> pAVR TODOs </title>
6
</head>
7
 
8
<body>
9
 
10
 
11
<b> Documentation </b>
12
<ul>
13
   <li> Add some AVR kernel schematics.
14
   <li> Add some AVR general considerations.
15
</ul>
16
 
17
<b> Coding style </b>
18
<ul>
19
   <li> Replace `next_...' signals family with a (pretty wide) state decoder.
20
</ul>
21
 
22
<b> Testing </b>
23
<ul>
24
   <li> Exercise string manipulating routines - C test for pAVR
25
   <li> C compiler - test for pAVR
26
   <li> Burn pAVR into an FPGA.
27
</ul>
28
 
29
<b> Design </b>
30
<ul>
31
   <li> Branch prediction with hashed branch prediction table and 2 bit predictor.
32
   <li> Super-RAM interfacing to Program Memory. <br>
33
A super-RAM is a classic RAM with two supplemental lines: a mem_rq input and a mem_ack output. The device that writes/reads the super-RAM knows that it can place an access request when the memory signalizes it's ready via mem_ack. Only then, it can place an access request via mem_rq.
34
A super-RAM is a super-class for classic RAM. That is, a super-RAM becomes classic RAM if the RAM ignores mem_rq and keeps continousely mem_ack to 1.
35
The super-RAM protocol is so flexible that, as an extreme example, it can serially (!) interface the Program Memory to the controller. That is, about 2-3 wires instead of 38 wires, without needing to modify anything in the controller. Of course, that would come with a very large speed penalty, but it allows choosing the most advantageous compromise between the number of wires and speed. The only thing to be done is to add a serial to parallel converter, that complies to the super-RAM protocol.
36
After pAVR is made super-RAM compatible, it can run anyway from a regular RAM, as it runs now, by ignoring the two extra lines. Thus, nothing is removed, it's only added. No speed penalty should be payed.
37
A simple way to add the super-RAM interface is to force nops into the pipeline as long as the serial-to-parallel converter works on an instruction word.
38
   <li> Modify stall handling so that no nops are required after the instruction wavefront. The instructions could take care of themselves. The idea is that a request to a hardware resource that is already in use by an older instruction, could automatically generate a stall.
39
That would:
40
   <ul>
41
      <li> generally simplify instruction handling
42
      <li> make average instruction execution slightly faster.
43
   </ul>
44
</ul>
45
 
46
</body>
47
</html>

powered by: WebSVN 2.1.0

© copyright 1999-2022 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.