Bus Topology Trade-off

Trade-off topology and system attributes to meet the timing requirements

Evaluate_Bus_Model_Step_4

Browsable image of the model.

  • For an executable version,
  • Mouse over the icons to view parameters. Click on hierarchy and plotters to reveal content (if provided).
  • To simulate, click on Launch button, open downloaded file and click Run on the Java Security Page.
Evaluate_Bus_Model_Step_4model <h2>ExpressionList</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Expression_List</td><td>/* Template for List of Expressions.    \\n   Result_A = MyRegExpression_A_or_None \\n   Result_B = MyRegExpression_B_or_None \\n   Result_C = MyRegExpression_C_or_None \\n   Result_D = MyRegExpression_D_or_None \\n   End of Expressions                */ \\n</td><td>/* Template for List of Expressions.    \\n   Result_A = MyRegExpression_A_or_None \\n   Result_B = MyRegExpression_B_or_None \\n   Result_C = MyRegExpression_C_or_None \\n   Result_D = MyRegExpression_D_or_None \\n   End of Expressions                */ \\n</td></tr><tr><td>Output_Ports</td><td>output,output1</td><td>&quot;output,output1&quot;</td></tr><tr><td>Output_Values</td><td>input.INDEX,input1.Mean_Value / input.Mean_Value</td><td>&quot;input.INDEX,input1.Mean_Value / input.Mean_Value&quot;</td></tr><tr><td>Output_Conditions</td><td>true,true</td><td>&quot;true,true&quot;</td></tr></table> <h2>Traffic3</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Data_Structure_Name</td><td>&quot;Processor_DS&quot;</td><td>&quot;Processor_DS&quot;</td></tr><tr><td>Start_Time</td><td>Bus_Cycle_Time</td><td>1.0E-8</td></tr><tr><td>Value_1</td><td>Cycles_Between_Bus_IO * Bus_Cycle_Time</td><td>1.0E-6</td></tr><tr><td>Value_2</td><td>2.0</td><td>2.0</td></tr><tr><td>Random_Seed</td><td>123457L</td><td>123457L</td></tr><tr><td>Time_Distribution</td><td>Fixed (Value_1)</td><td>Fixed (Value_1)</td></tr></table> <h2>Traffic2</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Data_Structure_Name</td><td>&quot;Processor_DS&quot;</td><td>&quot;Processor_DS&quot;</td></tr><tr><td>Start_Time</td><td>Bus_Cycle_Time</td><td>1.0E-8</td></tr><tr><td>Value_1</td><td>Cycles_Between_Bus_IO * Bus_Cycle_Time</td><td>1.0E-6</td></tr><tr><td>Value_2</td><td>2.0</td><td>2.0</td></tr><tr><td>Random_Seed</td><td>123457L</td><td>123457L</td></tr><tr><td>Time_Distribution</td><td>Fixed (Value_1)</td><td>Fixed (Value_1)</td></tr></table> <h2>Traffic</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Data_Structure_Name</td><td>&quot;Processor_DS&quot;</td><td>&quot;Processor_DS&quot;</td></tr><tr><td>Start_Time</td><td>Bus_Cycle_Time</td><td>1.0E-8</td></tr><tr><td>Value_1</td><td>Cycles_Between_Bus_IO * Bus_Cycle_Time</td><td>1.0E-6</td></tr><tr><td>Value_2</td><td>2.0</td><td>2.0</td></tr><tr><td>Random_Seed</td><td>123457L</td><td>123457L</td></tr><tr><td>Time_Distribution</td><td>Fixed (Value_1)</td><td>Fixed (Value_1)</td></tr></table> <h2>Bus_Master-Slave3</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Bus_Speed_Mhz</td><td>Bus_Speed_Mhz</td><td>100.0</td></tr><tr><td>Bus_Cycle_Time</td><td>Bus_Cycle_Time </td><td>1.0E-8</td></tr><tr><td>Bus_Width_Bytes</td><td>Bus_Width_Bytes</td><td>4</td></tr><tr><td>Burst_Size_Bytes</td><td>Burst_Size_Bytes</td><td>24</td></tr><tr><td>Arbiter_ID</td><td>4</td><td>4</td></tr><tr><td>Port_ID</td><td>1</td><td>1</td></tr><tr><td>Sim_Time</td><td>Sim_Time</td><td>1.0E-5</td></tr><tr><td>Priority</td><td>1</td><td>1</td></tr></table> <h2>Bus_Master-Slave2</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Bus_Speed_Mhz</td><td>Bus_Speed_Mhz</td><td>100.0</td></tr><tr><td>Bus_Cycle_Time</td><td>Bus_Cycle_Time </td><td>1.0E-8</td></tr><tr><td>Bus_Width_Bytes</td><td>Bus_Width_Bytes</td><td>4</td></tr><tr><td>Burst_Size_Bytes</td><td>Burst_Size_Bytes</td><td>24</td></tr><tr><td>Arbiter_ID</td><td>5</td><td>5</td></tr><tr><td>Port_ID</td><td>2</td><td>2</td></tr><tr><td>Sim_Time</td><td>Sim_Time</td><td>1.0E-5</td></tr><tr><td>Priority</td><td>2</td><td>2</td></tr></table> <h2>Bus_Master-Slave</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Bus_Speed_Mhz</td><td>Bus_Speed_Mhz</td><td>100.0</td></tr><tr><td>Bus_Cycle_Time</td><td>Bus_Cycle_Time </td><td>1.0E-8</td></tr><tr><td>Bus_Width_Bytes</td><td>Bus_Width_Bytes</td><td>4</td></tr><tr><td>Burst_Size_Bytes</td><td>Burst_Size_Bytes</td><td>24</td></tr><tr><td>Arbiter_ID</td><td>6</td><td>6</td></tr><tr><td>Port_ID</td><td>3</td><td>3</td></tr><tr><td>Sim_Time</td><td>Sim_Time</td><td>1.0E-5</td></tr><tr><td>Priority</td><td>1</td><td>1</td></tr></table> <h2>xData_yData_Plotter</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>fillOnWrapup</td><td>true</td><td>true</td></tr><tr><td>legend</td><td>mean</td><td>mean</td></tr><tr><td>startingDataset</td><td>0</td><td>0</td></tr><tr><td>fileName</td><td>Enter Filename to save plot</td><td>&quot;Enter Filename to save plot&quot;</td></tr><tr><td>viewPlot</td><td>true</td><td>true</td></tr><tr><td>savePlot</td><td>false</td><td>false</td></tr></table> <h2>T_Y_Plotter</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>fillOnWrapup</td><td>true</td><td>true</td></tr><tr><td>legend</td><td>red1, blu2, grn3, blk4-6</td><td>red1, blu2, grn3, blk4-6</td></tr><tr><td>startingDataset</td><td>0</td><td>0</td></tr><tr><td>fileName</td><td>Enter Filename to save plot</td><td>&quot;Enter Filename to save plot&quot;</td></tr><tr><td>viewPlot</td><td>true</td><td>true</td></tr><tr><td>savePlot</td><td>false</td><td>false</td></tr></table> <h2>Calc_Latency_Throughput3</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Bus_Speed_Mhz</td><td>Bus_Speed_Mhz</td><td>100.0</td></tr><tr><td>Bus_Cycle_Time</td><td>Bus_Cycle_Time</td><td>1.0E-8</td></tr><tr><td>Bus_Width_Bytes</td><td>Bus_Width_Bytes</td><td>4</td></tr><tr><td>Burst_Size_Bytes</td><td>24</td><td>24</td></tr><tr><td>Sim_Time</td><td>Sim_Time</td><td>1.0E-5</td></tr><tr><td>Port_ID</td><td>1</td><td>1</td></tr></table> <h2>Calc_Latency_Throughput2</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Bus_Speed_Mhz</td><td>Bus_Speed_Mhz</td><td>100.0</td></tr><tr><td>Bus_Cycle_Time</td><td>Bus_Cycle_Time</td><td>1.0E-8</td></tr><tr><td>Bus_Width_Bytes</td><td>Bus_Width_Bytes</td><td>4</td></tr><tr><td>Burst_Size_Bytes</td><td>24</td><td>24</td></tr><tr><td>Sim_Time</td><td>Sim_Time</td><td>1.0E-5</td></tr><tr><td>Port_ID</td><td>2</td><td>2</td></tr></table> <h2>Calc_Latency_Throughput</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Bus_Speed_Mhz</td><td>Bus_Speed_Mhz</td><td>100.0</td></tr><tr><td>Bus_Cycle_Time</td><td>Bus_Cycle_Time</td><td>1.0E-8</td></tr><tr><td>Bus_Width_Bytes</td><td>Bus_Width_Bytes</td><td>4</td></tr><tr><td>Burst_Size_Bytes</td><td>24</td><td>24</td></tr><tr><td>Sim_Time</td><td>Sim_Time</td><td>1.0E-5</td></tr><tr><td>Port_ID</td><td>3</td><td>3</td></tr></table> <h2>Bus_Arbiter</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Sim_Time</td><td>Sim_Time</td><td>1.0E-5</td></tr></table>

"This Model illustrates a simple bus model that evaluates bus performance in terms of latency, throughput, and utilization relative to burst size. Each Bus Port makes requests to a common Bus Arbiter, and then delays transactions based on the size of transactions.

What is the best burst size for a Bus running at 100 Mhz, 4 Byte width, in terms of Latency and Throughput? Assume the following:

-- Separate Address cycle for each Xfer.

-- Data Sizes of 16, 32, or 64 Bytes (Uniform Random).

-- Burst Size of 24 or 48 Bytes (Model Parameter).

-- Option to set Priority, all same in this model.

-- Order of Arrival (FCFS) determines processing.

Tradeoff Conclusion:

The plot compares the Figure of Merit, Throughput divided by Latency, so the highest value shows the best performance by Data Size. Here the 16 Byte transfer excels, however, it always arrives first (see detailed bus port, arbiter order), so has a processing preference, read better latency relative to other ports.

Tradeoff Conclusion:

This shows the Figure of Merit, Throughput divided by Latency, so the highest value shows the best performance by Data Size. Now the 32 Byte or 64 Byte excels, based on having a higher priority for Port_2 relative to other bus ports".