Corundum status updates
Alex Forencich
1/15/2024
Agenda
Announcements
Status update summary
MAC/PHY optimizations
Updated transmit status feedback
Updated queue management
Queue state storage (current)
TX/RX size | CQ/EQ size | Field |
64 | 64 | Base addr |
16 | 16 | Head ptr |
16 | 16 | Tail ptr |
16 | 16 | CQ/EQ/IRQ index |
4 | 4 | Log queue size |
2 | - | Log block size |
- | 1 | Arm |
- | 1 | Arm cont |
1 | 1 | Enable |
8 | 8 | Op index |
127 | 127 | Total |
URAM is 4096 x 64, so
2 URAM = 4096 queues
Queue state storage (new, 1st attempt)
QP size | CQ/EQ size | Field |
52 | 52 | Base addr (4K align) |
16+16 | 16 | Producer ptr |
16+16 | 16 | Consumer ptr |
16+16 | 16 | CQ/EQ/IRQ index |
4+4 | 4 | Log queue size |
- | 1 | Arm |
1 | 1 | Enable |
1+1 | 1 | Active |
12 | 12 | VF index |
16 | - | LSO offset |
187 | 119 | Total |
URAM is 4096 x 64, so:
4096 QP = 3 URAM
4096 CQ/EQ = 2 URAM
SQ+RQ rings will share same memory bock, amortizing large base address field
Queue state storage (new, 2nd attempt)
QP size | CQ/EQ size | Field |
52 | 52 | Base addr (4K align) |
16+16 | 16 | Producer ptr |
16+16 | 16 | Consumer ptr |
16+16 | 16 | CQ/EQ/IRQ index |
4+4 | 4 | Log queue size |
- | 1 | Arm |
- | 1 | Pending |
1*2 | 1 | Enable |
1+1 | 1 | Active |
12 | 12 | VF index |
8+8 | 8 | Slot |
188 | 128 | Total |
URAM is 4096 x 64, so:
4096 QP = 3 URAM
4096 CQ/EQ = 2 URAM
SQ+RQ rings will share same memory bock, amortizing large base address field
Split pipeline
Prod/cons pointers, size, arm, active, enable, etc.
Prod/cons pointers, size, arm, active, enable, etc.
Base address, VF
SQ
RQ
Address
64 bits
64 bits
64 bits
Event generation improvements
New slot allocation
Status
Updated scheduler and internal flow control
New scheduler
Internal flow control
First plan: scaling
Second plan: buffer borrowing
Current plan: split credit generation
App section passthrough
Potential shared development testbed