website/first_arch/architecture.dia.svg

174 lines
17 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/PR-SVG-20010719/DTD/svg10.dtd">
<svg width="58cm" height="49cm" viewBox="-60 -260 1160 980" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs/>
<g id="Background"/>
<g id="bg">
<rect style="fill: #ffffff; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2.35099e-37; stroke: #ffffff" x="-60" y="-260" width="1160" height="980" rx="0" ry="0"/>
</g>
<g id="grouping">
<rect style="fill: #ffffff; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke-dasharray: 4; stroke: #000000" x="-40" y="-40" width="960" height="740" rx="0" ry="0"/>
<text font-size="19.2" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="440" y="-20.15">
<tspan x="440" y="-20.15">Core 0</tspan>
</text>
</g>
<g id="fg">
<rect style="fill: #c0ffc0; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="0" y="0" width="160" height="120" rx="0" ry="0"/>
<text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="80" y="13.9">
<tspan x="80" y="13.9">Next PC</tspan>
</text>
<rect style="fill: #c0ffc0; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="40" y="20" width="80" height="80" rx="0" ry="0"/>
<text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="80" y="64.425">
<tspan x="80" y="64.425">BTB</tspan>
</text>
<rect style="fill: #c0c0ff; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="0" y="240" width="160" height="80" rx="0" ry="0"/>
<rect style="fill: #c0c0ff; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="0" y="140" width="160" height="80" rx="0" ry="0"/>
<text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="80" y="184.425">
<tspan x="80" y="184.425">ITLB</tspan>
</text>
<text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="80" y="284.425">
<tspan x="80" y="284.425">μOp Cache</tspan>
</text>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="80" y1="120" x2="80" y2="140"/>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="80" y1="220" x2="80" y2="240"/>
<rect style="fill: #c0c0ff; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="180" y="140" width="160" height="80" rx="0" ry="0"/>
<text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="260" y="176.425">
<tspan x="260" y="176.425">L2 TLB &amp;</tspan>
<tspan x="260" y="192.425">Page Table Walker</tspan>
</text>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="160" y1="180" x2="180" y2="180"/>
<rect style="fill: #c0ffc0; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="180" y="240" width="160" height="80" rx="0" ry="0"/>
<text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="260" y="284.425">
<tspan x="260" y="284.425">L1I Cache</tspan>
</text>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="160" y1="280" x2="180" y2="280"/>
<rect style="fill: #c0c0ff; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="200" y="0" width="680" height="120" rx="0" ry="0"/>
<text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="540" y="64.425">
<tspan x="540" y="64.425">L2 Cache</tspan>
</text>
<ellipse style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" cx="540" cy="180" rx="5" ry="5"/>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="540" y1="180" x2="340" y2="180"/>
<polyline style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" points="540,180 540,280 340,280 340,280 "/>
<polyline style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" points="540,180 540,140 540,140 540,120 "/>
<rect style="fill: #c0ffc0; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="180" y="360" width="160" height="80" rx="0" ry="0"/>
<text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="260" y="396.425">
<tspan x="260" y="396.425">PowerISA Simple</tspan>
<tspan x="260" y="412.425">Decode</tspan>
</text>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="260" y1="320" x2="260" y2="340"/>
<ellipse style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" cx="260" cy="340" rx="5" ry="5"/>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="260" y1="340" x2="260" y2="360"/>
<rect style="fill: #c0c0ff; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="360" y="360" width="160" height="80" rx="0" ry="0"/>
<text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="440" y="396.425">
<tspan x="440" y="396.425">Programmable</tspan>
<tspan x="440" y="412.425">Decoder</tspan>
</text>
<polyline style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" points="260,340 260,340 440,340 440,360 "/>
<ellipse style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" cx="260" cy="460" rx="5" ry="5"/>
<polyline style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" points="260,460 260,460 440,460 440,440 "/>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="260" y1="440" x2="260" y2="460"/>
<ellipse style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" cx="80" cy="460" rx="5" ry="5"/>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="260" y1="460" x2="80" y2="460"/>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="80" y1="320" x2="80" y2="460"/>
<rect style="fill: #c0ffc0; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="0" y="480" width="160" height="80" rx="0" ry="0"/>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="80" y1="460" x2="80" y2="480"/>
<text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="80" y="516.425">
<tspan x="80" y="516.425">Register Rename &amp;</tspan>
<tspan x="80" y="532.425">Unit Assignment</tspan>
</text>
<rect style="fill: #c0ffc0; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="180" y="480" width="160" height="80" rx="0" ry="0"/>
<text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="260" y="516.425">
<tspan x="260" y="516.425">Register Allocator &amp;</tspan>
<tspan x="260" y="532.425">Instruction Retire</tspan>
</text>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="160" y1="520" x2="180" y2="520"/>
<rect style="fill: #c0ffc0; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="0" y="600" width="160" height="80" rx="0" ry="0"/>
<text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="80" y="644.425">
<tspan x="80" y="644.425">ALU &amp; Branch</tspan>
</text>
<ellipse style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" cx="80" cy="580" rx="5" ry="5"/>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="80" y1="560" x2="80" y2="580"/>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="80" y1="580" x2="80" y2="600"/>
<rect style="fill: #c0c0ff; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="180" y="600" width="160" height="80" rx="0" ry="0"/>
<text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="260" y="644.425">
<tspan x="260" y="644.425">ALU</tspan>
</text>
<polyline style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" points="0,60 0,60 -20,60 -20,640 0,640 "/>
<rect style="fill: #c0ffc0; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="540" y="480" width="160" height="80" rx="0" ry="0"/>
<text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="620" y="524.425">
<tspan x="620" y="524.425">Load/Store</tspan>
</text>
<rect style="fill: #c0ffc0; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="720" y="360" width="160" height="80" rx="0" ry="0"/>
<text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="800" y="404.425">
<tspan x="800" y="404.425">L1D Cache</tspan>
</text>
<polyline style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" points="540,180 540,180 800,180 800,360 "/>
<rect style="fill: #c0c0ff; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="720" y="480" width="160" height="80" rx="0" ry="0"/>
<text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="800" y="524.425">
<tspan x="800" y="524.425">DTLB</tspan>
</text>
<polyline style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" points="340,200 340,200 700,200 700,460 760,460 760,480 "/>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="700" y1="520" x2="720" y2="520"/>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="800" y1="440" x2="800" y2="480"/>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="80" y1="580" x2="80" y2="580"/>
<ellipse style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" cx="260" cy="580" rx="5" ry="5"/>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="80" y1="580" x2="260" y2="580"/>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="260" y1="580" x2="260" y2="600"/>
<rect style="fill: #c0ffc0; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="360" y="480" width="160" height="80" rx="0" ry="0"/>
<text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="440" y="524.425">
<tspan x="440" y="524.425">L2 Register File</tspan>
</text>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="340" y1="520" x2="360" y2="520"/>
<ellipse style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" cx="440" cy="580" rx="5" ry="5"/>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="440" y1="560" x2="440" y2="580"/>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="260" y1="580" x2="440" y2="580"/>
<rect style="fill: #c0ffc0; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="-40" y="-240" width="160" height="80" rx="0" ry="0"/>
<text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="40" y="-195.575">
<tspan x="40" y="-195.575">Memory</tspan>
</text>
<rect style="fill: #c0c0ff; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="-40" y="-140" width="1120" height="80" rx="0" ry="0"/>
<text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="520" y="-95.575">
<tspan x="520" y="-95.575">L3 Cache</tspan>
</text>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="540" y1="0" x2="540" y2="-60"/>
<rect style="fill: #c0c0ff; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke-dasharray: 4; stroke: #000000" x="940" y="-40" width="140" height="740" rx="0" ry="0"/>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="1010" y1="-60" x2="1010" y2="-40"/>
<text font-size="19.2" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="1010" y="-20.15">
<tspan x="1010" y="-20.15">Other Cores</tspan>
</text>
<rect style="fill: #c0ffc0; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="920" y="-240" width="160" height="80" rx="0" ry="0"/>
<text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="1000" y="-195.575">
<tspan x="1000" y="-195.575">Peripherals</tspan>
</text>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="1000" y1="-160" x2="1000" y2="-140"/>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="40" y1="-160" x2="40" y2="-140"/>
<rect style="fill: #c0c0ff; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="360" y="600" width="160" height="80" rx="0" ry="0"/>
<text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="440" y="644.425">
<tspan x="440" y="644.425">Mul</tspan>
</text>
<rect style="fill: #c0c0ff; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="540" y="600" width="160" height="80" rx="0" ry="0"/>
<text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="620" y="644.425">
<tspan x="620" y="644.425">FMul/FAdd</tspan>
</text>
<rect style="fill: #c0c0ff; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="720" y="600" width="160" height="80" rx="0" ry="0"/>
<text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="800" y="644.425">
<tspan x="800" y="644.425">Div/FDiv/FSqrt</tspan>
</text>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="440" y1="580" x2="440" y2="600"/>
<ellipse style="fill: #000000; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" cx="620" cy="580" rx="5" ry="5"/>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="620" y1="580" x2="620" y2="560"/>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="620" y1="580" x2="440" y2="580"/>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="620" y1="580" x2="620" y2="600"/>
<polyline style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" points="620,580 620,580 800,580 800,600 "/>
<rect style="fill: #c0ffc0; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="280" y="-240" width="20" height="20" rx="0" ry="0"/>
<text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="304" y="-225.575">
<tspan x="304" y="-225.575">Needed for Initial Working CPU</tspan>
</text>
<rect style="fill: #c0c0ff; fill-opacity: 1; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="280" y="-200" width="20" height="20" rx="0" ry="0"/>
<text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="304" y="-185.575">
<tspan x="304" y="-185.575">Possible Follow-on Work</tspan>
</text>
<line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="260" y1="560" x2="260" y2="580"/>
</g>
</svg>