mirror of
https://github.com/lowRISC/ibex.git
synced 2025-04-22 21:07:34 -04:00
Added a basic description of the pipeline
This commit is contained in:
parent
6f3358adfd
commit
a8987b5890
4 changed files with 695 additions and 0 deletions
44
docs/datasheet/content/pipeline.tex
Normal file
44
docs/datasheet/content/pipeline.tex
Normal file
|
@ -0,0 +1,44 @@
|
|||
\chapter{Pipeline}
|
||||
\label{chap:pipeline}
|
||||
|
||||
\rvcore has a fully independent pipeline, meaning that whenever possible data
|
||||
will propagate through the pipeline and therefor does not suffer from any
|
||||
unneeded stalls.
|
||||
|
||||
The pipeline design is easily extendable to incorporate out-of-order
|
||||
completion. E.g. it would be possible to complete an instruction that only
|
||||
needs the EX stage before the WB stage, that is currently blocked waiting for
|
||||
an rvalid, is ready.
|
||||
Currently this is not done in \rvcore, but might be added in the future.
|
||||
|
||||
Figure~\ref{fig:pipeline} shows the control signals relevant for the pipeline
|
||||
operation. Running from right to left are the main control signals, the
|
||||
\signal{ready} signals of each pipeline stage.
|
||||
Each pipeline stage has two control inputs: an enable and a clear. The enable
|
||||
activates the pipeline stage and the core moves forward by one instruction. The
|
||||
clear removes the instruction from the pipeline stage as it is completed.
|
||||
At every pipeline stage, when the \signal{ready} coming from the stage to the
|
||||
right is high, but the valid signal of the stage is low, the stage is cleared.
|
||||
If the valid signal is high, it is enabled.
|
||||
|
||||
Going from right to left every stage is independent, no stage depends on the
|
||||
stage on its left. Going from left to right every stage depends on its right
|
||||
neighbor and can only continue when it is ready.
|
||||
This means that in addition that a single stage has to be ready, also the stage
|
||||
on its right has to be ready to move on.
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.9\textwidth]{./figures/pipeline}
|
||||
\caption{\rvcore Pipeline.}
|
||||
\label{fig:pipeline}
|
||||
\end{figure}
|
||||
|
||||
|
||||
|
||||
\begin{boxnote}
|
||||
In contrast to \orion there is no global stall controller any more, instead
|
||||
every stage manages its own dependencies. The main controller of \rvcore is now
|
||||
only responsible for control flow operations, i.e. flushing the pipe, branches,
|
||||
jumps and exceptions.
|
||||
\end{boxnote}
|
|
@ -37,6 +37,7 @@
|
|||
\input{./content/mac.tex}
|
||||
\input{./content/aluext.tex}
|
||||
\input{./content/hwloop.tex}
|
||||
\input{./content/pipeline.tex}
|
||||
\input{./content/rf.tex}
|
||||
\input{./content/csr.tex}
|
||||
\input{./content/perfcounters.tex}
|
||||
|
|
641
docs/datasheet/figures_raw/pipeline.obj
Normal file
641
docs/datasheet/figures_raw/pipeline.obj
Normal file
|
@ -0,0 +1,641 @@
|
|||
%TGIF 4.2.5-QPL
|
||||
state(0,37,100.000,0,0,0,32,1,16,2,2,1,0,0,0,1,1,'Helvetica-Bold',1,97920,0,0,0,10,0,0,1,1,0,16,0,0,1,1,1,1,1088,1408,1,0,5760,0).
|
||||
%
|
||||
% @(#)$Header$
|
||||
% %W%
|
||||
%
|
||||
unit("1 pixel/pixel").
|
||||
color_info(66,65535,0,[
|
||||
"black", 0, 0, 0, 0, 0, 0, 1,
|
||||
"white", 65535, 65535, 65535, 65535, 65535, 65535, 1,
|
||||
"#F0F0F0", 61680, 61680, 61680, 61440, 61440, 61440, 1,
|
||||
"#C8C8C8", 51400, 51400, 51400, 51200, 51200, 51200, 1,
|
||||
"#505050", 20560, 20560, 20560, 20480, 20480, 20480, 1,
|
||||
"#282828", 10280, 10280, 10280, 10240, 10240, 10240, 1,
|
||||
"#FF0000", 65535, 0, 0, 65280, 0, 0, 1,
|
||||
"#0000FF", 0, 0, 65535, 0, 0, 65280, 1,
|
||||
"#00FF00", 0, 65535, 0, 0, 65280, 0, 1,
|
||||
"#009000", 0, 37008, 0, 0, 36864, 0, 1,
|
||||
"#1F407A", 7967, 16448, 31354, 7936, 16384, 31232, 1,
|
||||
"#3C5A0F", 15420, 23130, 3855, 15360, 23040, 3840, 1,
|
||||
"#0069B4", 0, 26985, 46260, 0, 26880, 46080, 1,
|
||||
"#71791C", 29041, 31097, 7196, 28928, 30976, 7168, 1,
|
||||
"#91056A", 37265, 1285, 27242, 37120, 1280, 27136, 1,
|
||||
"#6F6F6E", 28527, 28527, 28270, 28416, 28416, 28160, 1,
|
||||
"#A8322D", 43176, 12850, 11565, 43008, 12800, 11520, 1,
|
||||
"#007A92", 0, 31354, 37522, 0, 31232, 37376, 1,
|
||||
"#956013", 38293, 24672, 4883, 38144, 24576, 4864, 1,
|
||||
"#82BE1E", 33410, 48830, 7710, 33280, 48640, 7680, 1,
|
||||
"#758fbd", 30069, 36751, 48573, 29952, 36608, 48384, 1,
|
||||
"#8eab63", 36494, 43947, 25443, 36352, 43776, 25344, 1,
|
||||
"#6cacd9", 27756, 44204, 55769, 27648, 44032, 55552, 1,
|
||||
"#b4ba72", 46260, 47802, 29298, 46080, 47616, 29184, 1,
|
||||
"#c967ae", 51657, 26471, 44718, 51456, 26368, 44544, 1,
|
||||
"#b8b8b6", 47288, 47288, 46774, 47104, 47104, 46592, 1,
|
||||
"#d48985", 54484, 35209, 34181, 54272, 35072, 34048, 1,
|
||||
"#65b9c9", 25957, 47545, 51657, 25856, 47360, 51456, 1,
|
||||
"#c9a571", 51657, 42405, 29041, 51456, 42240, 28928, 1,
|
||||
"#bbde81", 48059, 57054, 33153, 47872, 56832, 33024, 1,
|
||||
"#a5b7d6", 42405, 47031, 54998, 42240, 46848, 54784, 1,
|
||||
"#b8cc99", 47288, 52428, 39321, 47104, 52224, 39168, 1,
|
||||
"#a2cbe8", 41634, 52171, 59624, 41472, 51968, 59392, 1,
|
||||
"#d2d6a5", 53970, 54998, 42405, 53760, 54784, 42240, 1,
|
||||
"#de9ecc", 57054, 40606, 52428, 56832, 40448, 52224, 1,
|
||||
"#d4d4d2", 54484, 54484, 53970, 54272, 54272, 53760, 1,
|
||||
"#e6b5b3", 59110, 46517, 46003, 58880, 46336, 45824, 1,
|
||||
"#9bd3de", 39835, 54227, 57054, 39680, 54016, 56832, 1,
|
||||
"#dec6a4", 57054, 50886, 42148, 56832, 50688, 41984, 1,
|
||||
"#d5ebb0", 54741, 60395, 45232, 54528, 60160, 45056, 1,
|
||||
"#b3cde3", 46003, 52685, 58339, 45824, 52480, 58112, 1,
|
||||
"#bae4bc", 47802, 58596, 48316, 47616, 58368, 48128, 1,
|
||||
"#edf8fb", 60909, 63736, 64507, 60672, 63488, 64256, 1,
|
||||
"#ffffcc", 65535, 65535, 52428, 65280, 65280, 52224, 1,
|
||||
"magenta", 65535, 0, 65535, 65535, 0, 65535, 1,
|
||||
"#f0f9e8", 61680, 63993, 59624, 61440, 63744, 59392, 1,
|
||||
"#feebe2", 65278, 60395, 58082, 65024, 60160, 57856, 1,
|
||||
"cyan", 0, 65535, 65535, 0, 65535, 65535, 1,
|
||||
"#fecc5c", 65278, 52428, 23644, 65024, 52224, 23552, 1,
|
||||
"yellow", 65535, 65535, 0, 65535, 65535, 0, 1,
|
||||
"red", 65535, 0, 0, 65535, 0, 0, 1,
|
||||
"green", 0, 65535, 0, 0, 65535, 0, 1,
|
||||
"blue", 0, 0, 65535, 0, 0, 65535, 1,
|
||||
"pink", 65535, 49344, 52171, 65535, 49344, 52171, 1,
|
||||
"CadetBlue", 24415, 40606, 41120, 24415, 40606, 41120, 1,
|
||||
"DarkSlateGray", 12079, 20303, 20303, 12079, 20303, 20303, 1,
|
||||
"#FF4D08", 65535, 19789, 2056, 65280, 19712, 2048, 1,
|
||||
"#FF6437", 65535, 25700, 14135, 65280, 25600, 14080, 1,
|
||||
"#7F321B", 32639, 12850, 6939, 32512, 12800, 6912, 1,
|
||||
"#FF8080", 65535, 32896, 32896, 65280, 32768, 32768, 1,
|
||||
"#FF8A7E", 65535, 35466, 32382, 65280, 35328, 32256, 1,
|
||||
"#FFC37C", 65535, 50115, 31868, 65280, 49920, 31744, 1,
|
||||
"#7F4A0D", 32639, 19018, 3341, 32512, 18944, 3328, 1,
|
||||
"#DE82FF", 57054, 33410, 65535, 56832, 33280, 65280, 1,
|
||||
"#EFB8FF", 61423, 47288, 65535, 61184, 47104, 65280, 1,
|
||||
"#6F367F", 28527, 13878, 32639, 28416, 13824, 32512, 1
|
||||
]).
|
||||
script_frac("0.6").
|
||||
fg_bg_colors('#A8322D','white').
|
||||
dont_reencode("FFDingbests:ZapfDingbats").
|
||||
objshadow_info('#c0c0c0',2,2).
|
||||
rotate_pivot(0,0,0,0).
|
||||
spline_tightness(1).
|
||||
page(1,"",1,'').
|
||||
box('#EFB8FF','',288,256,320,560,1,2,0,288070,0,0,0,0,0,'2',0,[
|
||||
]).
|
||||
box('#EFB8FF','',592,256,624,560,1,2,0,288062,0,0,0,0,0,'2',0,[
|
||||
]).
|
||||
box('#EFB8FF','',888,400,920,560,1,2,0,288031,0,0,0,0,0,'2',0,[
|
||||
]).
|
||||
rcbox('#f0f9e8','',332,256,580,616,1,1,0,0,16,287695,0,0,0,0,'1',0,[
|
||||
]).
|
||||
rcbox('#f0f9e8','',636,256,876,616,1,1,0,0,16,287722,0,0,0,0,'1',0,[
|
||||
]).
|
||||
rcbox('#f0f9e8','',932,256,1052,616,1,1,0,0,16,287742,0,0,0,0,'1',0,[
|
||||
]).
|
||||
rcbox('#f0f9e8','',24,256,276,616,1,1,0,0,16,287635,0,0,0,0,'1',0,[
|
||||
]).
|
||||
rcbox('#d4d4d2','',24,256,276,616,0,1,1,0,16,287685,0,0,0,0,'1',0,[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
820,280,820,192],1,1,1,286345,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
text('black',816,170,1,1,1,40,17,286346,14,3,0,0,0,0,2,40,17,0,0,"",0,0,0,0,184,'',[
|
||||
minilines(40,17,0,0,1,0,0,[
|
||||
mini_line(40,14,3,0,0,0,[
|
||||
str_block(0,40,14,3,0,-1,0,0,0,[
|
||||
str_seg('#0069B4','Courier-Bold',1,97920,40,14,3,0,-1,0,0,0,0,0,
|
||||
"addr")])
|
||||
])
|
||||
])]).
|
||||
text('black',960,170,1,1,1,60,17,286404,14,3,0,0,0,0,2,60,17,0,0,"",0,0,0,0,184,'',[
|
||||
minilines(60,17,0,0,1,0,0,[
|
||||
mini_line(60,14,3,0,0,0,[
|
||||
str_block(0,60,14,3,0,-1,0,0,0,[
|
||||
str_seg('#0069B4','Courier-Bold',1,97920,60,14,3,0,-1,0,0,0,0,0,
|
||||
"rvalid")])
|
||||
])
|
||||
])]).
|
||||
text('black',872,170,1,1,1,50,17,286468,14,3,0,0,0,0,2,50,17,0,0,"",0,0,0,0,184,'',[
|
||||
minilines(50,17,0,0,1,0,0,[
|
||||
mini_line(50,14,3,0,0,0,[
|
||||
str_block(0,50,14,3,0,-1,0,0,0,[
|
||||
str_seg('#0069B4','Courier-Bold',1,97920,50,14,3,0,-1,0,0,0,0,0,
|
||||
"grant")])
|
||||
])
|
||||
])]).
|
||||
rcbox('#0069B4','',784,136,1024,192,0,1,1,0,16,286710,0,0,0,0,'1',0,[
|
||||
]).
|
||||
text('black',888,142,1,1,1,127,23,286718,18,5,0,0,0,0,2,127,23,0,0,"",0,0,0,0,160,'',[
|
||||
minilines(127,23,0,0,1,0,0,[
|
||||
mini_line(127,18,5,0,0,0,[
|
||||
str_block(0,127,18,5,0,-1,0,0,0,[
|
||||
str_seg('#0069B4','Helvetica-Bold',1,115200,127,18,5,0,-1,0,0,0,0,0,
|
||||
"Data Interface")])
|
||||
])
|
||||
])]).
|
||||
box('black','',12,224,1064,664,0,1,1,286736,0,0,0,0,0,'1',0,[
|
||||
]).
|
||||
text('black',184,170,1,1,1,40,17,286355,14,3,0,0,0,0,2,40,17,0,0,"",0,0,0,0,184,'',[
|
||||
minilines(40,17,0,0,1,0,0,[
|
||||
mini_line(40,14,3,0,0,0,[
|
||||
str_block(0,40,14,3,0,-1,0,0,0,[
|
||||
str_seg('#0069B4','Courier-Bold',1,97920,40,14,3,0,-1,0,0,0,0,0,
|
||||
"addr")])
|
||||
])
|
||||
])]).
|
||||
text('black',120,170,1,1,1,60,17,286569,14,3,0,0,0,0,2,60,17,0,0,"",0,0,0,0,184,'',[
|
||||
minilines(60,17,0,0,1,0,0,[
|
||||
mini_line(60,14,3,0,0,0,[
|
||||
str_block(0,60,14,3,0,-1,0,0,0,[
|
||||
str_seg('#0069B4','Courier-Bold',1,97920,60,14,3,0,-1,0,0,0,0,0,
|
||||
"rvalid")])
|
||||
])
|
||||
])]).
|
||||
rcbox('#0069B4','',56,136,264,192,0,1,1,0,16,286711,0,0,0,0,'1',0,[
|
||||
]).
|
||||
text('black',160,142,1,1,1,181,23,286715,18,5,0,0,0,0,2,181,23,0,0,"",0,0,0,0,160,'',[
|
||||
minilines(181,23,0,0,1,0,0,[
|
||||
mini_line(181,18,5,0,0,0,[
|
||||
str_block(0,181,18,5,0,-1,0,0,0,[
|
||||
str_seg('#0069B4','Helvetica-Bold',1,115200,181,18,5,0,-1,0,0,0,0,0,
|
||||
"Instruction Interface")])
|
||||
])
|
||||
])]).
|
||||
box('#6F367F','',288,256,320,560,0,2,1,283037,0,0,0,0,0,'2',0,[
|
||||
]).
|
||||
text('black',294,415,2,0,1,20,35,283038,14,3,0,0,0,0,2,20,34,0,0,"",0,1,0,0,429,'',[
|
||||
294,415,294,415,314,449,1000,0,0,1022.73,0,4,293,414,315,450],[
|
||||
minilines(20,34,0,0,0,0,0,[
|
||||
mini_line(20,14,3,0,0,0,[
|
||||
str_block(0,20,14,3,0,-1,0,0,0,[
|
||||
str_seg('black','Courier-Bold',1,97920,20,14,3,0,-1,0,0,0,0,0,
|
||||
"IF")])
|
||||
]),
|
||||
mini_line(20,14,3,0,0,0,[
|
||||
str_block(0,20,14,3,0,-1,0,0,0,[
|
||||
str_seg('black','Courier-Bold',1,97920,20,14,3,0,-1,0,0,0,0,0,
|
||||
"ID")])
|
||||
])
|
||||
])]).
|
||||
box('#6F367F','',592,256,624,560,0,2,1,283031,0,0,0,0,0,'2',0,[
|
||||
]).
|
||||
text('black',598,415,2,0,1,20,34,283032,14,3,0,0,0,0,2,20,34,0,0,"",0,0,0,0,429,'',[
|
||||
minilines(20,34,0,0,0,0,0,[
|
||||
mini_line(20,14,3,0,0,0,[
|
||||
str_block(0,20,14,3,0,-1,0,0,0,[
|
||||
str_seg('black','Courier-Bold',1,97920,20,14,3,0,-1,0,0,0,0,0,
|
||||
"ID")])
|
||||
]),
|
||||
mini_line(20,14,3,0,0,0,[
|
||||
str_block(0,20,14,3,0,0,0,0,0,[
|
||||
str_seg('black','Courier-Bold',1,97920,20,14,3,0,0,0,0,0,0,0,
|
||||
"EX")])
|
||||
])
|
||||
])]).
|
||||
box('#6F367F','',888,400,920,560,0,2,1,283042,0,0,0,0,0,'2',0,[
|
||||
]).
|
||||
text('black',894,415,2,0,1,20,34,283043,14,3,0,0,0,0,2,20,34,0,0,"",0,0,0,0,429,'',[
|
||||
minilines(20,34,0,0,0,0,0,[
|
||||
mini_line(20,14,3,0,0,0,[
|
||||
str_block(0,20,14,3,0,0,0,0,0,[
|
||||
str_seg('black','Courier-Bold',1,97920,20,14,3,0,0,0,0,0,0,0,
|
||||
"EX")])
|
||||
]),
|
||||
mini_line(20,14,3,0,0,0,[
|
||||
str_block(0,20,14,3,0,-1,0,0,0,[
|
||||
str_seg('black','Courier-Bold',1,97920,20,14,3,0,-1,0,0,0,0,0,
|
||||
"WB")])
|
||||
])
|
||||
])]).
|
||||
poly('black','',2,[
|
||||
172,280,172,192],1,1,1,287533,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
116,192,116,280],1,1,1,287631,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
rcbox('#d4d4d2','',332,256,580,616,0,1,1,0,16,287693,0,0,0,0,'1',0,[
|
||||
]).
|
||||
rcbox('#d4d4d2','',636,256,876,616,0,1,1,0,16,287738,0,0,0,0,'1',0,[
|
||||
]).
|
||||
rcbox('#d4d4d2','',932,256,1052,616,0,1,1,0,16,287749,0,0,0,0,'1',0,[
|
||||
]).
|
||||
poly('#6F367F','',3,[
|
||||
296,560,304,548,312,560],0,2,1,288021,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
poly('#6F367F','',3,[
|
||||
600,560,608,548,616,560],0,2,1,288025,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
poly('#6F367F','',3,[
|
||||
896,560,904,548,912,560],0,2,1,288028,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
text('#6F367F',376,554,1,1,1,80,17,288303,14,3,0,0,0,0,-65534,80,17,0,0,"",0,0,0,0,568,'',[
|
||||
minilines(80,17,0,0,1,0,0,[
|
||||
mini_line(80,14,3,0,0,0,[
|
||||
str_block(0,80,14,3,0,0,0,0,0,[
|
||||
str_seg('black','Courier-Bold',1,97920,80,14,3,0,0,0,0,0,0,0,
|
||||
"id_ready")])
|
||||
])
|
||||
])]).
|
||||
text('#6F367F',680,554,1,1,1,80,17,288352,14,3,0,0,0,0,-65534,80,17,0,0,"",0,0,0,0,568,'',[
|
||||
minilines(80,17,0,0,1,0,0,[
|
||||
mini_line(80,14,3,0,0,0,[
|
||||
str_block(0,80,14,3,0,0,0,0,0,[
|
||||
str_seg('black','Courier-Bold',1,97920,80,14,3,0,0,0,0,0,0,0,
|
||||
"ex_ready")])
|
||||
])
|
||||
])]).
|
||||
text('#6F367F',980,554,1,1,1,80,17,288361,14,3,0,0,0,0,-65534,80,17,0,0,"",0,0,0,0,568,'',[
|
||||
minilines(80,17,0,0,1,0,0,[
|
||||
mini_line(80,14,3,0,0,0,[
|
||||
str_block(0,80,14,3,0,0,0,0,0,[
|
||||
str_seg('black','Courier-Bold',1,97920,80,14,3,0,0,0,0,0,0,0,
|
||||
"wb_ready")])
|
||||
])
|
||||
])]).
|
||||
poly('black','',3,[
|
||||
496,384,496,560,472,560],1,2,1,288369,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
728,576,472,576],1,2,1,288370,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
text('#6F367F',456,410,1,1,1,60,17,288372,14,3,0,0,0,0,-65534,60,17,0,0,"",0,0,0,0,424,'',[
|
||||
minilines(60,17,0,0,1,0,0,[
|
||||
mini_line(60,14,3,0,0,0,[
|
||||
str_block(0,60,14,3,0,-1,0,0,0,[
|
||||
str_seg('black','Courier-Bold',1,97920,60,14,3,0,-1,0,0,0,0,0,
|
||||
"!stall")])
|
||||
])
|
||||
])]).
|
||||
text('#6F367F',744,402,1,1,1,70,17,288380,14,3,0,0,0,0,-65534,70,17,0,0,"",0,0,0,0,416,'',[
|
||||
minilines(70,17,0,0,1,0,0,[
|
||||
mini_line(70,14,3,0,0,0,[
|
||||
str_block(0,70,14,3,0,-1,0,0,0,[
|
||||
str_seg('black','Courier-Bold',1,97920,70,14,3,0,-1,0,0,0,0,0,
|
||||
"granted")])
|
||||
])
|
||||
])]).
|
||||
text('#6F367F',988,402,1,1,1,60,17,288385,14,3,0,0,0,0,-65534,60,17,0,0,"",0,0,0,0,416,'',[
|
||||
minilines(60,17,0,0,1,0,0,[
|
||||
mini_line(60,14,3,0,0,0,[
|
||||
str_block(0,60,14,3,0,-1,0,0,0,[
|
||||
str_seg('black','Courier-Bold',1,97920,60,14,3,0,-1,0,0,0,0,0,
|
||||
"rvalid")])
|
||||
])
|
||||
])]).
|
||||
poly('black','',2,[
|
||||
1028,576,776,576],1,2,1,288388,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
poly('#3C5A0F','',3,[
|
||||
424,576,424,608,464,608],0,2,1,288395,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
poly('#3C5A0F','',4,[
|
||||
448,608,568,608,568,520,592,520],1,2,1,288396,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
text('#6F367F',520,586,1,1,1,80,17,288398,14,3,0,0,0,0,-65534,80,17,0,0,"",0,0,0,0,600,'',[
|
||||
minilines(80,17,0,0,1,0,0,[
|
||||
mini_line(80,14,3,0,0,0,[
|
||||
str_block(0,80,14,3,0,-1,0,0,0,[
|
||||
str_seg('black','Courier-Bold',1,97920,80,14,3,0,-1,0,0,0,0,0,
|
||||
"id_valid")])
|
||||
])
|
||||
])]).
|
||||
poly('#3C5A0F','',3,[
|
||||
728,576,728,608,752,608],0,2,1,288403,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
poly('#3C5A0F','',4,[
|
||||
736,608,864,608,864,520,888,520],1,2,1,288404,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
text('#6F367F',816,586,1,1,1,80,17,288405,14,3,0,0,0,0,-65534,80,17,0,0,"",0,0,0,0,600,'',[
|
||||
minilines(80,17,0,0,1,0,0,[
|
||||
mini_line(80,14,3,0,0,0,[
|
||||
str_block(0,80,14,3,0,-1,0,0,0,[
|
||||
str_seg('black','Courier-Bold',1,97920,80,14,3,0,-1,0,0,0,0,0,
|
||||
"ex_valid")])
|
||||
])
|
||||
])]).
|
||||
poly('#3C5A0F','',3,[
|
||||
40,568,40,608,168,608],0,2,1,288407,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
poly('#3C5A0F','',4,[
|
||||
160,608,256,608,256,520,288,520],1,2,1,288408,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
text('#6F367F',208,586,1,1,1,80,17,288409,14,3,0,0,0,0,-65534,80,17,0,0,"",0,0,0,0,600,'',[
|
||||
minilines(80,17,0,0,1,0,0,[
|
||||
mini_line(80,14,3,0,0,0,[
|
||||
str_block(0,80,14,3,0,-1,0,0,0,[
|
||||
str_seg('black','Courier-Bold',1,97920,80,14,3,0,-1,0,0,0,0,0,
|
||||
"if_valid")])
|
||||
])
|
||||
])]).
|
||||
text('#6F367F',80,546,1,1,1,80,17,288418,14,3,0,0,0,0,-65534,80,17,0,0,"",0,0,0,0,560,'',[
|
||||
minilines(80,17,0,0,1,0,0,[
|
||||
mini_line(80,14,3,0,0,0,[
|
||||
str_block(0,80,14,3,0,0,0,0,0,[
|
||||
str_seg('black','Courier-Bold',1,97920,80,14,3,0,0,0,0,0,0,0,
|
||||
"if_ready")])
|
||||
])
|
||||
])]).
|
||||
rcbox('#bbde81','',80,280,208,432,1,2,0,0,10,288422,0,0,0,0,'2',0,[
|
||||
]).
|
||||
poly('#009000','',3,[
|
||||
136,432,144,420,152,432],0,2,1,288423,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
text('black',144,296,2,1,1,101,58,288424,24,5,0,0,0,0,2,101,58,0,0,"",0,0,0,0,320,'',[
|
||||
minilines(101,58,0,0,1,0,0,[
|
||||
mini_line(101,24,5,0,0,0,[
|
||||
str_block(0,101,24,5,0,-2,0,0,0,[
|
||||
str_seg('black','Helvetica-Bold',1,138240,101,24,5,0,-2,0,0,0,0,0,
|
||||
"Prefetch")])
|
||||
]),
|
||||
mini_line(75,24,5,0,0,0,[
|
||||
str_block(0,75,24,5,0,-1,0,0,0,[
|
||||
str_seg('black','Helvetica-Bold',1,138240,75,24,5,0,-1,0,0,0,0,0,
|
||||
"Buffer")])
|
||||
])
|
||||
])]).
|
||||
rcbox('#009000','',80,280,208,432,0,2,1,0,10,288425,0,0,0,0,'2',0,[
|
||||
]).
|
||||
text('#6F367F',152,458,1,1,1,50,17,288428,14,3,0,0,0,0,-65534,50,17,0,0,"",0,0,0,0,472,'',[
|
||||
minilines(50,17,0,0,1,0,0,[
|
||||
mini_line(50,14,3,0,0,0,[
|
||||
str_block(0,50,14,3,0,-1,0,0,0,[
|
||||
str_seg('black','Courier-Bold',1,97920,50,14,3,0,-1,0,0,0,0,0,
|
||||
"valid")])
|
||||
])
|
||||
])]).
|
||||
rcbox('#b8cc99','',432,328,560,384,1,2,1,0,10,288430,0,0,0,0,'2',0,[
|
||||
]).
|
||||
rcbox('#3C5A0F','',432,328,560,384,0,2,1,0,10,288431,0,0,0,0,'2',0,[
|
||||
]).
|
||||
text('black',496,337,2,1,1,104,46,288432,18,5,0,0,0,0,2,104,46,0,0,"",0,0,0,0,355,'',[
|
||||
minilines(104,46,0,0,1,0,0,[
|
||||
mini_line(104,18,5,0,0,0,[
|
||||
str_block(0,104,18,5,0,-1,0,0,0,[
|
||||
str_seg('black','Helvetica-Bold',1,115200,104,18,5,0,-1,0,0,0,0,0,
|
||||
"Forwarding")])
|
||||
]),
|
||||
mini_line(67,18,5,0,0,0,[
|
||||
str_block(0,67,18,5,0,-1,0,0,0,[
|
||||
str_seg('black','Helvetica-Bold',1,115200,67,18,5,0,-1,0,0,0,0,0,
|
||||
"Control")])
|
||||
])
|
||||
])]).
|
||||
poly('black','',2,[
|
||||
964,192,964,280],1,1,1,288438,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
rcbox('#a5b7d6','',768,280,1040,384,1,2,0,0,10,287905,0,0,0,0,'2',0,[
|
||||
]).
|
||||
rcbox('#1F407A','',768,280,1040,384,0,2,1,0,10,286743,0,0,0,0,'2',0,[
|
||||
]).
|
||||
text('black',824,288,1,1,1,51,29,286745,24,5,0,0,0,0,2,51,29,0,0,"",0,0,0,0,312,'',[
|
||||
minilines(51,29,0,0,1,0,0,[
|
||||
mini_line(51,24,5,0,0,0,[
|
||||
str_block(0,51,24,5,0,-2,0,0,0,[
|
||||
str_seg('black','Helvetica-Bold',1,138240,51,24,5,0,-2,0,0,0,0,0,
|
||||
"LSU")])
|
||||
])
|
||||
])]).
|
||||
poly('black','',2,[
|
||||
904,280,904,384],0,2,1,288448,0,0,5,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
868,192,868,280],1,1,1,288459,0,0,0,0,0,0,0,'1',0,0,
|
||||
"0","",[
|
||||
0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
|
||||
]).
|
||||
text('black',896,508,1,1,1,10,20,288462,16,4,0,0,0,0,-65534,10,20,0,0,"",0,0,0,0,524,'',[
|
||||
minilines(10,20,0,0,1,0,0,[
|
||||
mini_line(10,16,4,0,0,0,[
|
||||
str_block(0,10,16,4,0,-1,0,0,0,[
|
||||
str_seg('black','Helvetica-Bold',1,97920,10,16,4,0,-1,0,0,0,0,0,
|
||||
"E")])
|
||||
])
|
||||
])]).
|
||||
text('black',600,508,1,1,1,10,20,288494,16,4,0,0,0,0,-65534,10,20,0,0,"",0,0,0,0,524,'',[
|
||||
minilines(10,20,0,0,1,0,0,[
|
||||
mini_line(10,16,4,0,0,0,[
|
||||
str_block(0,10,16,4,0,-1,0,0,0,[
|
||||
str_seg('black','Helvetica-Bold',1,97920,10,16,4,0,-1,0,0,0,0,0,
|
||||
"E")])
|
||||
])
|
||||
])]).
|
||||
text('black',296,508,1,1,1,10,20,288498,16,4,0,0,0,0,-65534,10,20,0,0,"",0,0,0,0,524,'',[
|
||||
minilines(10,20,0,0,1,0,0,[
|
||||
mini_line(10,16,4,0,0,0,[
|
||||
str_block(0,10,16,4,0,-1,0,0,0,[
|
||||
str_seg('black','Helvetica-Bold',1,97920,10,16,4,0,-1,0,0,0,0,0,
|
||||
"E")])
|
||||
])
|
||||
])]).
|
||||
group([
|
||||
arc('black','',0,2,1,0,744,552,760,568,760,552,760,584,0,32,32,5760,11520,288353,0,0,10,4,0,0,0,'2','10','4',0,[
|
||||
]),
|
||||
poly('black','',4,[
|
||||
760,552,776,552,776,584,760,584],0,2,1,288354,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
])
|
||||
],
|
||||
288516,0,0,[
|
||||
]).
|
||||
poly('black','',3,[
|
||||
744,568,728,568,728,576],0,2,1,288522,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
poly('black','',3,[
|
||||
792,384,792,560,776,560],1,2,1,288531,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
poly('black','',4,[
|
||||
1028,384,1028,520,1028,520,1028,576],0,2,1,288539,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
group([
|
||||
arc('black','',0,2,1,0,440,552,456,568,456,552,456,584,0,32,32,5760,11520,288315,0,0,10,4,0,0,0,'2','10','4',0,[
|
||||
]),
|
||||
poly('black','',4,[
|
||||
456,552,472,552,472,584,456,584],0,2,1,288314,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
])
|
||||
],
|
||||
288544,0,0,[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
424,576,160,576],1,2,1,288560,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
poly('black','',3,[
|
||||
440,568,424,568,424,576],0,2,1,288561,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
group([
|
||||
arc('black','',0,2,1,0,128,552,144,568,144,552,144,584,0,32,32,5760,11520,288574,0,0,10,4,0,0,0,'2','10','4',0,[
|
||||
]),
|
||||
poly('black','',4,[
|
||||
144,552,160,552,160,584,144,584],0,2,1,288573,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
])
|
||||
],
|
||||
288572,0,0,[
|
||||
]).
|
||||
poly('black','',3,[
|
||||
184,432,184,560,160,560],1,2,1,288581,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
poly('black','',2,[
|
||||
128,568,40,568],0,2,1,288588,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
text('black',600,476,1,1,1,12,20,288598,16,4,0,0,0,0,-65534,12,20,0,0,"",0,0,0,0,492,'',[
|
||||
minilines(12,20,0,0,1,0,0,[
|
||||
mini_line(12,16,4,0,0,0,[
|
||||
str_block(0,12,16,4,0,-1,0,0,0,[
|
||||
str_seg('black','Helvetica-Bold',1,97920,12,16,4,0,-1,0,0,0,0,0,
|
||||
"C")])
|
||||
])
|
||||
])]).
|
||||
oval('#A8322D','',536,492,544,500,0,2,1,288611,0,0,0,0,0,'2',0,[
|
||||
]).
|
||||
group([
|
||||
arc('#A8322D','',0,2,1,0,544,472,560,488,560,472,560,504,1,32,32,5760,-11520,288605,0,0,10,4,0,0,0,'2','10','4',0,[
|
||||
]),
|
||||
poly('#A8322D','',4,[
|
||||
560,472,544,472,544,504,560,504],0,2,1,288604,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
])
|
||||
],
|
||||
288603,0,0,[
|
||||
]).
|
||||
poly('#A8322D','',3,[
|
||||
512,576,512,480,544,480],0,2,1,288629,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
poly('#3C5A0F','',4,[
|
||||
568,520,528,520,528,496,536,496],0,2,1,288632,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
poly('#A8322D','',2,[
|
||||
576,488,592,488],0,2,1,288639,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
oval('#A8322D','',832,492,840,500,0,2,1,288653,0,0,0,0,0,'2',0,[
|
||||
]).
|
||||
group([
|
||||
arc('#A8322D','',0,2,1,0,840,472,856,488,856,472,856,504,1,32,32,5760,-11520,288656,0,0,10,4,0,0,0,'2','10','4',0,[
|
||||
]),
|
||||
poly('#A8322D','',4,[
|
||||
856,472,840,472,840,504,856,504],0,2,1,288655,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
])
|
||||
],
|
||||
288654,0,0,[
|
||||
]).
|
||||
poly('#A8322D','',3,[
|
||||
808,576,808,480,840,480],0,2,1,288657,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
poly('#A8322D','',2,[
|
||||
872,488,888,488],0,2,1,288658,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
poly('#3C5A0F','',4,[
|
||||
864,520,824,520,824,496,832,496],0,2,1,288668,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
oval('#A8322D','',232,492,240,500,0,2,1,288675,0,0,0,0,0,'2',0,[
|
||||
]).
|
||||
group([
|
||||
arc('#A8322D','',0,2,1,0,240,472,256,488,256,472,256,504,1,32,32,5760,-11520,288678,0,0,10,4,0,0,0,'2','10','4',0,[
|
||||
]),
|
||||
poly('#A8322D','',4,[
|
||||
256,472,240,472,240,504,256,504],0,2,1,288677,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
])
|
||||
],
|
||||
288676,0,0,[
|
||||
]).
|
||||
poly('#A8322D','',3,[
|
||||
208,576,208,480,240,480],0,2,1,288679,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
poly('#A8322D','',2,[
|
||||
272,488,288,488],0,2,1,288680,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
poly('#3C5A0F','',4,[
|
||||
256,520,224,520,224,496,232,496],0,2,1,288682,0,0,0,0,0,0,0,'2',0,0,
|
||||
"0","",[
|
||||
0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
|
||||
]).
|
||||
text('black',296,476,1,1,1,12,20,288685,16,4,0,0,0,0,-65534,12,20,0,0,"",0,0,0,0,492,'',[
|
||||
minilines(12,20,0,0,1,0,0,[
|
||||
mini_line(12,16,4,0,0,0,[
|
||||
str_block(0,12,16,4,0,-1,0,0,0,[
|
||||
str_seg('black','Helvetica-Bold',1,97920,12,16,4,0,-1,0,0,0,0,0,
|
||||
"C")])
|
||||
])
|
||||
])]).
|
||||
text('black',896,476,1,1,1,12,20,288687,16,4,0,0,0,0,-65534,12,20,0,0,"",0,0,0,0,492,'',[
|
||||
minilines(12,20,0,0,1,0,0,[
|
||||
mini_line(12,16,4,0,0,0,[
|
||||
str_block(0,12,16,4,0,-1,0,0,0,[
|
||||
str_seg('black','Helvetica-Bold',1,97920,12,16,4,0,-1,0,0,0,0,0,
|
||||
"C")])
|
||||
])
|
||||
])]).
|
|
@ -55,6 +55,8 @@
|
|||
|
||||
\usepackage{enumitem}
|
||||
|
||||
\usepackage{tcolorbox}
|
||||
|
||||
\usepackage{pdflscape}
|
||||
|
||||
|
||||
|
@ -115,3 +117,10 @@
|
|||
\textbf{Operation:} \texttt{#2}%
|
||||
}
|
||||
|
||||
\newenvironment{boxnote}%
|
||||
{%
|
||||
\begin{tcolorbox}[colback=red!5!white,colframe=red!75!black,title=Note]%
|
||||
}%
|
||||
{%
|
||||
\end{tcolorbox}%
|
||||
}%
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue