forked from HyperVDP/Hyper4
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathoptimization_tables_notes.txt
More file actions
65 lines (55 loc) · 1.65 KB
/
optimization_tables_notes.txt
File metadata and controls
65 lines (55 loc) · 1.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
1. Consolidate t_set_first_table and t_set_validbits
2. Consolidate set_primitive_metadata and set_program_state
3. Put conditional over csum16
4. Put conditional over t_resize_pr
Savings: (3 + 1 * avg number of primitives) table lookups
We should redo flow chart and come up with good name for state transition
that will now represent set_primitive_metadata and set_program_state:
Current:
1. Setup
a. t_prog_select
b. t_virt_filter
c. t_recirc_cleanup
d. parse_control
e. t_inspect_<XX>_<XX>
f. t_norm_<XX>_<XX>
(1) a_norm_<XX>_<XX>
g. t_set_first_table
h. t_set_validbits
2. Stage X (where X = 1 ... max number of stages)
a. match: t1_<data type>_<match type>
b. while meta_ctrl.stage_state != COMPLETE:
1. set_primitive_metadata_XX
2. [primitive-specific]
3. set_program_state_XX
(a) a_set_program_state
3. Egress
a. t_multicast
b. csum16
c. t_resize_pr
d. t_prep_deparse_SEB
e. t_prep_deparse_XX_XX (number of these applied depends on parse_ctrl.numbytes)
f. t_virt_net
Proposed:
1. Setup
a. tset_context
b. tset_virtnet
c. tset_recirc
d. tset_control
e. tset_inspect_<XX>_<XX>
f. tset_pr_<XX>_<XX>
(1) a_pr_import_<XX>_<XX>
g. tset_pipeline
2. Stage X (where X = 1 ... max number of stages)
a. match: tstgX_<data type>_<match type>
b. while meta_ctrl.stage_state != COMPLETE:
1. [primitive-specific]
2. tstgXY_update_state
(a) update_state
3. Egress
a. tegr_multicast
b. tegr_csum16
c. tegr_resize_pr
d. tegr_pr_SEB
e. tegr_pr_<XX>_<XX> (number of these applied depends on parse_ctrl.numbytes)
f. tegr_virtnet