
There is a square block with two different sizes of partition. The first partition is labeled Process and has two types of content labeled Code and Data. The code is in two steps: 1. Train branch predictor to predict "true": 100 multiply rectangular block is labeled "input equals 5". 2. Provide a value to cause misprediction: a rectangular block labeled "input equals 63261". The content Data has a vertical rectangular block labeled Shared array B which is placed at both centers of two partitions within which one more rectangular block with fifteen partitions and out of which the ninth partition is highlighted with a backward arrow from outside labeled 5. Access is fast. because this element is now in the cache. The second partition is labeled Kernel. There is a rectangular highlighted block on the left labeled Line 1: if (input less than 32) Start Parentheses. Line 2: char x equals A [input] semicolon. Line 3: char y equals B open square bracket x multiply 4096 close square bracket semicolon and line 3 has a forward arrow labeled 4. speculatively load array element in the cache pointing to the ninth highlighted partition in the Data block. Line 4: End Parentheses. There are two steps written in this kernel. 3. Speculatively load A open square bracket 63261 close square bracket and has a backward arrow pointing to line 2 in the program code. Note: 6. Again, the index of the fast array element (divided by 4096) is the value that was read by Line 2 in the kernel exclamation.
Back