AMD Opteron

Compares the memory architecture of the Opteron Direct Connect with Xeon Shared Bus

Opteron

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.
Opteronmodel <h2>TextDisplay2</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>rowsDisplayed</td><td>10</td><td>10</td></tr><tr><td>columnsDisplayed</td><td>40</td><td>40</td></tr><tr><td>suppressBlankLines</td><td>false</td><td>false</td></tr><tr><td>title</td><td>&quot;Rapid IO Messages&quot;</td><td>&quot;Rapid IO Messages&quot;</td></tr><tr><td>ViewText</td><td>true</td><td>true</td></tr><tr><td>saveText</td><td>false</td><td>false</td></tr><tr><td>fileName</td><td>Enter Filename to save text</td><td>&quot;Enter Filename to save text&quot;</td></tr><tr><td>Append_Time</td><td>true</td><td>true</td></tr></table> <h2>TextDisplay</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>rowsDisplayed</td><td>10</td><td>10</td></tr><tr><td>columnsDisplayed</td><td>40</td><td>40</td></tr><tr><td>suppressBlankLines</td><td>false</td><td>false</td></tr><tr><td>title</td><td>&quot;Detailed Processor Activity&quot;</td><td>&quot;Detailed Processor Activity&quot;</td></tr><tr><td>ViewText</td><td>true</td><td>true</td></tr><tr><td>saveText</td><td>false</td><td>false</td></tr><tr><td>fileName</td><td>Enter Filename to save text</td><td>&quot;Enter Filename to save text&quot;</td></tr><tr><td>Append_Time</td><td>true</td><td>true</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>0.0</td><td>0.0</td></tr><tr><td>Value_1</td><td>1.0</td><td>1.0</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>Single Event</td><td>Single Event</td></tr></table> <h2>Util_Plot2</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>Processor Stall Time</td><td>Processor Stall Time</td></tr><tr><td>startingDataset</td><td>0</td><td>0</td></tr><tr><td>_explanation</td><td>Result-&gt;Plotter-&gt;SequencePlotter</td><td>Result-&gt;Plotter-&gt;SequencePlotter</td></tr><tr><td>xInit</td><td>0.0</td><td>0.0</td></tr><tr><td>xUnit</td><td>2.0</td><td>2.0</td></tr></table> <h2>ArchitectureSetup</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>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>Field_Name_Mapping</td><td>/* First row contains Column Names.                */\\nExternal_Field_Name          Internal_Field_Name   ; \\nA_Address                    A_Address             ; \\nA_Bytes                      A_Bytes               ; \\nA_Data                       A_Data                ; \\nA_IDX                        A_IDX                 ; \\nA_Instruction                A_Instruction         ; \\nA_Priority                   A_Priority            ; \\nA_Source                     A_Source              ; \\nA_Destination                A_Destination         ; \\nA_Task_ID                    A_Task_ID             ; \\nA_Time                       A_Time                ; \\n</td><td>/* First row contains Column Names.                */\\nExternal_Field_Name          Internal_Field_Name   ; \\nA_Address                    A_Address             ; \\nA_Bytes                      A_Bytes               ; \\nA_Data                       A_Data                ; \\nA_IDX                        A_IDX                 ; \\nA_Instruction                A_Instruction         ; \\nA_Priority                   A_Priority            ; \\nA_Source                     A_Source              ; \\nA_Destination                A_Destination         ; \\nA_Task_ID                    A_Task_ID             ; \\nA_Time                       A_Time                ; \\n</td></tr><tr><td>Routing_Table</td><td>/* First row contains Column Names.                */\\n/*Source_Node    Destination_Node   Hop           Source_Port ; \\nProcessor_1    Processor_2        Processor_2   bus_out     ; \\nProcessor_2    Processor_1        Processor_1   instr_out   ; \\nSDRAM_1        Processor_2        Processor_2   output      ;\\nSDRAM_2        Processor_3        Processor_3   output      ;*/</td><td>/* First row contains Column Names.                */\\n/*Source_Node    Destination_Node   Hop           Source_Port ; \\nProcessor_1    Processor_2        Processor_2   bus_out     ; \\nProcessor_2    Processor_1        Processor_1   instr_out   ; \\nSDRAM_1        Processor_2        Processor_2   output      ;\\nSDRAM_2        Processor_3        Processor_3   output      ;*/</td></tr><tr><td>Number_of_Samples</td><td>20</td><td>20</td></tr><tr><td>Statistics_to_Plot</td><td>&quot;Processor_1_Stall_Time_Pct_Mean,Processor_2_Stall_Time_Pct_Mean, TIME&quot;</td><td>&quot;Processor_1_Stall_Time_Pct_Mean,Processor_2_Stall_Time_Pct_Mean, TIME&quot;</td></tr><tr><td>Internal_Plot_Trace_Offset</td><td>2</td><td>2</td></tr><tr><td>Listen_to_Architecture_Options</td><td>Processor</td><td>Processor</td></tr></table> <h2>Script</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>Block_Name</td><td>&quot;MyMachine&quot;</td><td>&quot;MyMachine&quot;</td></tr><tr><td>Optional_Parameters</td><td>/* First row contains Column Names.              */\\nParameter_Name                 Parameter_Value     \\nPath                           VS/User_Library     \\nRead_File                      none                \\nSave_Files                     false               \\nProfile_File                   none                \\nListen_to_File                 none                \\nDuplicate_Input                true                \\nProfile                        0                   \\nMaximum_Loops                  1000000             \\nBlock_Reference                Block_Name         \\nPort_Order_Array               {&quot;input&quot;}         \\nAdd_Scheduler_Times_to_DS      false               \\n</td><td>/* First row contains Column Names.              */\\nParameter_Name                 Parameter_Value     \\nPath                           VS/User_Library     \\nRead_File                      none                \\nSave_Files                     false               \\nProfile_File                   none                \\nListen_to_File                 none                \\nDuplicate_Input                true                \\nProfile                        0                   \\nMaximum_Loops                  1000000             \\nBlock_Reference                Block_Name         \\nPort_Order_Array               {&quot;input&quot;}         \\nAdd_Scheduler_Times_to_DS      false               \\n</td></tr></table> <h2>TaskGenerator</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Name</td><td>&quot;My_SoftGen&quot;</td><td>&quot;My_SoftGen&quot;</td></tr><tr><td>Mode_of_Operation</td><td>&quot;Loop&quot; /* Field gets input, Random selects a Task, Loop is sequential */</td><td>&quot;Loop&quot;</td></tr><tr><td>DEBUG</td><td>false /* To Debug Port */</td><td>false</td></tr><tr><td>_explanation</td><td>ProcessorGenerator-&gt;TaskGenerator</td><td>ProcessorGenerator-&gt;TaskGenerator</td></tr><tr><td>Sim_Time</td><td>Sim_Time</td><td>0.01</td></tr><tr><td>Instruction_Mix_File</td><td>Instruction_Mix_Table_Test.txt</td><td>&quot;Instruction_Mix_Table_Test.txt&quot;</td></tr></table> <h2>BusArbter2</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>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>_explanation</td><td>HardwareDevices-&gt;BusArbiter</td><td>HardwareDevices-&gt;BusArbiter</td></tr><tr><td>Bus_Name</td><td>&quot;Bus_2&quot;</td><td>&quot;Bus_2&quot;</td></tr><tr><td>Bus_Speed_Mhz</td><td>1000.0</td><td>1000.0</td></tr><tr><td>Burst_Size_Bytes</td><td>100</td><td>100</td></tr><tr><td>Round_Robin_Port_Array</td><td>{&quot;Port_1&quot;, &quot;Port_2&quot;}</td><td>{&quot;Port_1&quot;, &quot;Port_2&quot;}</td></tr><tr><td>Devices_Attached_to_Slave_by_Port</td><td>{{&quot;Device_1&quot;}, {&quot;Device_2&quot;}, {&quot;Device_3&quot;}, {&quot;Device_4&quot;}, {&quot;Device_5&quot;}, {&quot;Device_6&quot;}, {&quot;Device_7&quot;}, {&quot;Device_8&quot;}}</td><td>{{&quot;Device_1&quot;}, {&quot;Device_2&quot;}, {&quot;Device_3&quot;}, {&quot;Device_4&quot;}, {&quot;Device_5&quot;}, {&quot;Device_6&quot;}, {&quot;Device_7&quot;}, {&quot;Device_8&quot;}}</td></tr><tr><td>Width_Bytes</td><td>8</td><td>8</td></tr><tr><td>Arbiter_Mode</td><td>FCFS</td><td>FCFS</td></tr><tr><td>Split_Retry_Flag</td><td>true</td><td>true</td></tr><tr><td>FIFO_Buffers</td><td>2</td><td>2</td></tr></table> <h2>BusArbiter</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>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>_explanation</td><td>HardwareDevices-&gt;BusArbiter</td><td>HardwareDevices-&gt;BusArbiter</td></tr><tr><td>Bus_Name</td><td>&quot;Bus_1&quot;</td><td>&quot;Bus_1&quot;</td></tr><tr><td>Bus_Speed_Mhz</td><td>1000.0</td><td>1000.0</td></tr><tr><td>Burst_Size_Bytes</td><td>100</td><td>100</td></tr><tr><td>Round_Robin_Port_Array</td><td>{&quot;Port_1&quot;, &quot;Port_2&quot;}</td><td>{&quot;Port_1&quot;, &quot;Port_2&quot;}</td></tr><tr><td>Devices_Attached_to_Slave_by_Port</td><td>{{&quot;Device_1&quot;}, {&quot;Device_2&quot;}, {&quot;Device_3&quot;}, {&quot;Device_4&quot;}, {&quot;Device_5&quot;}, {&quot;Device_6&quot;}, {&quot;Device_7&quot;}, {&quot;Device_8&quot;}}</td><td>{{&quot;Device_1&quot;}, {&quot;Device_2&quot;}, {&quot;Device_3&quot;}, {&quot;Device_4&quot;}, {&quot;Device_5&quot;}, {&quot;Device_6&quot;}, {&quot;Device_7&quot;}, {&quot;Device_8&quot;}}</td></tr><tr><td>Width_Bytes</td><td>8</td><td>8</td></tr><tr><td>Arbiter_Mode</td><td>FCFS</td><td>FCFS</td></tr><tr><td>Split_Retry_Flag</td><td>true</td><td>true</td></tr><tr><td>FIFO_Buffers</td><td>2</td><td>2</td></tr><tr><td>_flipPortsHorizontal</td><td>true</td><td>true</td></tr></table> <h2>OUT2</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>Destination_Name</td><td>Processor_2_Plots</td><td>&quot;Processor_2_Plots&quot;</td></tr><tr><td>Destination_Type</td><td>Global</td><td>Global</td></tr></table> <h2>OUT</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>Destination_Name</td><td>Processor_1_Plots</td><td>&quot;Processor_1_Plots&quot;</td></tr><tr><td>Destination_Type</td><td>Global</td><td>Global</td></tr></table> <h2>Plots</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></table> <h2>Simulation_Time_Monitor</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>_explanation</td><td>Result-&gt;Text-&gt;Simulation_Time_Monitor</td><td>Result-&gt;Text-&gt;Simulation_Time_Monitor</td></tr><tr><td>SimTime</td><td>&quot;2.0&quot;</td><td>&quot;2.0&quot;</td></tr><tr><td>Number_of_Bins</td><td>100</td><td>100</td></tr><tr><td>Percent_Display</td><td>true</td><td>true</td></tr><tr><td>displayWidth</td><td>10</td><td>10</td></tr></table> <h2>Instruction_Set</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>Instruction_Set_Name</td><td>&quot;MyInstructionSet&quot;</td><td>&quot;MyInstructionSet&quot;</td></tr><tr><td>_explanation</td><td>ProcessorGenerator-&gt;Instruction_Set</td><td>ProcessorGenerator-&gt;Instruction_Set</td></tr><tr><td>Instruction_Set_Text</td><td>/* Instruction Set or File Path. */\\nMnew    Ra Rb  Rc    ; /* Label */\\nProc \tIU FPU   ;\\nIU \tINT_1 INT_2  INT_3        ;\\nFPU \tFP_1 FP_2    ;\\n\\nbegin INT_1 ; /* Group */\\nIU_add 1 ;\\nIU_shift 1 ;\\nIU_rotate 1 ;\\nIU_logical 1 ;\\nIU_mux 4 ;\\nIU_div 4 ;\\nend INT_1 ;\\n\\n\\nbegin INT_2 ; /* Group */\\nIU_add 1 ;\\nIU_shift 1 ;\\nIU_rotate 1 ;\\nIU_logical 1 ;\\nIU_mux 4 ;\\nIU_div 4 ;\\nend INT_2 ;\\n\\n\\nbegin INT_3 ; /* Group */\\n*b 11 ;\\nb   3 ;\\nl_s 3 ;\\nend INT_3 ;\\n\\nbegin FP_1 ; /* Group */\\nFPU_s_add 4 ;\\nFPU_s_mul 4 ;\\nFPU_s_div 16 ;\\nFPU_d_add 4 ;\\nFPU_d_mul 4 ;\\nFPU_d_div 20 ;\\nend FP_1 ;\\n\\nbegin FP_2 ; /* Group */\\nFPU_s_add 4 ;\\nFPU_s_mul 4 ;\\nFPU_s_div 16 ;\\nFPU_d_add 4 ;\\nFPU_d_mul 4 ;\\nFPU_d_div 20 ;\\nend FP_2 ;</td><td>/* Instruction Set or File Path. */\\nMnew    Ra Rb  Rc    ; /* Label */\\nProc \tIU FPU   ;\\nIU \tINT_1 INT_2  INT_3        ;\\nFPU \tFP_1 FP_2    ;\\n\\nbegin INT_1 ; /* Group */\\nIU_add 1 ;\\nIU_shift 1 ;\\nIU_rotate 1 ;\\nIU_logical 1 ;\\nIU_mux 4 ;\\nIU_div 4 ;\\nend INT_1 ;\\n\\n\\nbegin INT_2 ; /* Group */\\nIU_add 1 ;\\nIU_shift 1 ;\\nIU_rotate 1 ;\\nIU_logical 1 ;\\nIU_mux 4 ;\\nIU_div 4 ;\\nend INT_2 ;\\n\\n\\nbegin INT_3 ; /* Group */\\n*b 11 ;\\nb   3 ;\\nl_s 3 ;\\nend INT_3 ;\\n\\nbegin FP_1 ; /* Group */\\nFPU_s_add 4 ;\\nFPU_s_mul 4 ;\\nFPU_s_div 16 ;\\nFPU_d_add 4 ;\\nFPU_d_mul 4 ;\\nFPU_d_div 20 ;\\nend FP_1 ;\\n\\nbegin FP_2 ; /* Group */\\nFPU_s_add 4 ;\\nFPU_s_mul 4 ;\\nFPU_s_div 16 ;\\nFPU_d_add 4 ;\\nFPU_d_mul 4 ;\\nFPU_d_div 20 ;\\nend FP_2 ;</td></tr><tr><td>Record_Set_Name</td><td>&quot;Record_Set_Name&quot;</td><td>&quot;Record_Set_Name&quot;</td></tr><tr><td>Memory_Type</td><td>Global</td><td>Global</td></tr></table> <h2>Processor2</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>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>Processor_Name</td><td>&quot;Processor_2&quot;</td><td>&quot;Processor_2&quot;</td></tr><tr><td>Processor_Setup</td><td>/* First row contains Column Names.            */\\nParameter_Name               Parameter_Value   ;  \\nProcessor_Instruction_Set:   MyInstructionSet    \\nProcessor_Registers:         32                 \\nContext_Switch_Cycles:       200\\nProcessor_Speed_Mhz:         Processor_Speed          \\nInstruction_Queue_Length:    6                   \\nPipeline_Stages:             4                   \\nINT_Execution_Units:         3                  \\nFP_Execution_Units:          2\\n/*IO_Execution_Units:          1                   */\\nCache_Execution_Units        3                   \\nI_1         {Cache_Speed_Mhz=500.0, Size_KBytes=64.0, Words_per_Cache_Line=16, Cache_Miss_Name=L_2}   \\nD_1         {Cache_Speed_Mhz=500.0, Size_KBytes=64.0, Words_per_Cache_Line=16, Cache_Miss_Name=L_2}   \\nL_2         {Cache_Speed_Mhz=500.0, Size_KBytes=64.0, Words_per_Cache_Line=16, Cache_Miss_Name=SDRAM_1}   \\n</td><td>/* First row contains Column Names.            */\\nParameter_Name               Parameter_Value   ;  \\nProcessor_Instruction_Set:   MyInstructionSet    \\nProcessor_Registers:         32                 \\nContext_Switch_Cycles:       200\\nProcessor_Speed_Mhz:         Processor_Speed          \\nInstruction_Queue_Length:    6                   \\nPipeline_Stages:             4                   \\nINT_Execution_Units:         3                  \\nFP_Execution_Units:          2\\n/*IO_Execution_Units:          1                   */\\nCache_Execution_Units        3                   \\nI_1         {Cache_Speed_Mhz=500.0, Size_KBytes=64.0, Words_per_Cache_Line=16, Cache_Miss_Name=L_2}   \\nD_1         {Cache_Speed_Mhz=500.0, Size_KBytes=64.0, Words_per_Cache_Line=16, Cache_Miss_Name=L_2}   \\nL_2         {Cache_Speed_Mhz=500.0, Size_KBytes=64.0, Words_per_Cache_Line=16, Cache_Miss_Name=SDRAM_1}   \\n</td></tr><tr><td>Pipeline_Stages</td><td>/* First row contains Column Names.            */\\nStage_Name  Execute_Location  Action  Condition ; \\n1_PREFETCH  I_1               instr   none      ; \\n1_PREFETCH  D_1               read    none      ; \\n2_DECODE    I_1               wait    none      ; \\n3_EXECUTE   D_1               wait    none      ; \\n3_EXECUTE   Proc       exec    none    ;\\n4_STORE     D_1               write   none      ;\\n</td><td>/* First row contains Column Names.            */\\nStage_Name  Execute_Location  Action  Condition ; \\n1_PREFETCH  I_1               instr   none      ; \\n1_PREFETCH  D_1               read    none      ; \\n2_DECODE    I_1               wait    none      ; \\n3_EXECUTE   D_1               wait    none      ; \\n3_EXECUTE   Proc       exec    none    ;\\n4_STORE     D_1               write   none      ;\\n</td></tr><tr><td>Enable_Hello_Messages</td><td>true</td><td>true</td></tr><tr><td>Processor_Bits</td><td>64</td><td>64</td></tr></table> <h2>Processor1</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>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>Processor_Name</td><td>&quot;Processor_1&quot;</td><td>&quot;Processor_1&quot;</td></tr><tr><td>Processor_Setup</td><td>/* First row contains Column Names.            */\\nParameter_Name               Parameter_Value   ;  \\nProcessor_Instruction_Set:   MyInstructionSet    \\nProcessor_Registers:         32                 \\nContext_Switch_Cycles:       200\\nProcessor_Speed_Mhz:         Processor_Speed          \\nInstruction_Queue_Length:    6                   \\nPipeline_Stages:             4                   \\nINT_Execution_Units:         3                  \\nFP_Execution_Units:          2\\n/*IO_Execution_Units:          1                   */\\nCache_Execution_Units        3                   \\nI_1         {Cache_Speed_Mhz=500.0, Size_KBytes=512.0, Words_per_Cache_Line=16, Cache_Miss_Name=L_2}   \\nD_1         {Cache_Speed_Mhz=500.0, Size_KBytes=512.0, Words_per_Cache_Line=16, Cache_Miss_Name=L_2}   \\nL_2         {Cache_Speed_Mhz=500.0, Size_KBytes=1024.0, Words_per_Cache_Line=16, Cache_Miss_Name=SDRAM_1}   \\n\\n</td><td>/* First row contains Column Names.            */\\nParameter_Name               Parameter_Value   ;  \\nProcessor_Instruction_Set:   MyInstructionSet    \\nProcessor_Registers:         32                 \\nContext_Switch_Cycles:       200\\nProcessor_Speed_Mhz:         Processor_Speed          \\nInstruction_Queue_Length:    6                   \\nPipeline_Stages:             4                   \\nINT_Execution_Units:         3                  \\nFP_Execution_Units:          2\\n/*IO_Execution_Units:          1                   */\\nCache_Execution_Units        3                   \\nI_1         {Cache_Speed_Mhz=500.0, Size_KBytes=512.0, Words_per_Cache_Line=16, Cache_Miss_Name=L_2}   \\nD_1         {Cache_Speed_Mhz=500.0, Size_KBytes=512.0, Words_per_Cache_Line=16, Cache_Miss_Name=L_2}   \\nL_2         {Cache_Speed_Mhz=500.0, Size_KBytes=1024.0, Words_per_Cache_Line=16, Cache_Miss_Name=SDRAM_1}   \\n\\n</td></tr><tr><td>Pipeline_Stages</td><td>/* First row contains Column Names.            */\\nStage_Name  Execute_Location  Action  Condition ; \\n1_PREFETCH  I_1               instr   none      ; \\n1_PREFETCH  D_1               read    none      ; \\n2_DECODE    I_1               wait    none      ; \\n3_EXECUTE   D_1               wait    none      ; \\n3_EXECUTE   Proc               exec    none       ;\\n/*4_MEM     Processor_1       wait    none       ;*/\\n4_STORE     D_1               write   none      ; \\n\\n</td><td>/* First row contains Column Names.            */\\nStage_Name  Execute_Location  Action  Condition ; \\n1_PREFETCH  I_1               instr   none      ; \\n1_PREFETCH  D_1               read    none      ; \\n2_DECODE    I_1               wait    none      ; \\n3_EXECUTE   D_1               wait    none      ; \\n3_EXECUTE   Proc               exec    none       ;\\n/*4_MEM     Processor_1       wait    none       ;*/\\n4_STORE     D_1               write   none      ; \\n\\n</td></tr><tr><td>Enable_Hello_Messages</td><td>true</td><td>true</td></tr><tr><td>Processor_Bits</td><td>64</td><td>64</td></tr></table> <h2>BusInterface3</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>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>Bus_Name</td><td>&quot;Bus_2&quot;</td><td>&quot;Bus_2&quot;</td></tr><tr><td>Port_Name_1</td><td>&quot;Port_3&quot;</td><td>&quot;Port_3&quot;</td></tr><tr><td>Port_Name_2</td><td>&quot;Port_4&quot;</td><td>&quot;Port_4&quot;</td></tr><tr><td>FIFO_Buffers</td><td>8</td><td>8</td></tr><tr><td>Enable_Hello_Messages</td><td>true</td><td>true</td></tr></table> <h2>DRAM3</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>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>Memory_Name</td><td>&quot;SDRAM_1&quot;</td><td>&quot;SDRAM_1&quot;</td></tr><tr><td>Memory_Speed_Mhz</td><td>500.0</td><td>500.0</td></tr><tr><td>Memory_Size_MBytes</td><td>64.0</td><td>64.0</td></tr><tr><td>Access_Time</td><td>&quot;Read 2.0, Prefetch 6.0, Write 2.0, ReadWrite 8.0, Erase 9.0&quot;</td><td>&quot;Read 2.0, Prefetch 6.0, Write 2.0, ReadWrite 8.0, Erase 9.0&quot;</td></tr><tr><td>FIFO_Buffers</td><td>32</td><td>32</td></tr><tr><td>Refresh_Rate_Cycles</td><td>16384</td><td>16384</td></tr><tr><td>Refresh_Cycles</td><td>32</td><td>32</td></tr><tr><td>Memory_Address</td><td>&quot;/* Format: Min_Address,Max_Address. Example:201,300 */&quot;</td><td>&quot;/* Format: Min_Address,Max_Address. Example:201,300 */&quot;</td></tr><tr><td>Controller_Time</td><td>&quot;Cycle_Time * 1.0&quot;</td><td>&quot;Cycle_Time * 1.0&quot;</td></tr><tr><td>Enable_Hello_Messages</td><td>true</td><td>true</td></tr><tr><td>Width_Bytes</td><td>8</td><td>8</td></tr><tr><td>Memory_Type</td><td>DDR2</td><td>DDR2</td></tr></table> <h2>BusInterface4</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>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>Bus_Name</td><td>&quot;Bus_3&quot;</td><td>&quot;Bus_3&quot;</td></tr><tr><td>Port_Name_1</td><td>&quot;Port_5&quot;</td><td>&quot;Port_5&quot;</td></tr><tr><td>Port_Name_2</td><td>&quot;Port_6&quot;</td><td>&quot;Port_6&quot;</td></tr><tr><td>FIFO_Buffers</td><td>8</td><td>8</td></tr><tr><td>Enable_Hello_Messages</td><td>true</td><td>true</td></tr></table> <h2>BusArbiter3</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>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>_explanation</td><td>HardwareDevices-&gt;BusArbiter</td><td>HardwareDevices-&gt;BusArbiter</td></tr><tr><td>Bus_Name</td><td>&quot;Bus_3&quot;</td><td>&quot;Bus_3&quot;</td></tr><tr><td>Bus_Speed_Mhz</td><td>500.0</td><td>500.0</td></tr><tr><td>Burst_Size_Bytes</td><td>100</td><td>100</td></tr><tr><td>Round_Robin_Port_Array</td><td>{&quot;Port_1&quot;, &quot;Port_2&quot;}</td><td>{&quot;Port_1&quot;, &quot;Port_2&quot;}</td></tr><tr><td>Devices_Attached_to_Slave_by_Port</td><td>{{&quot;Device_1&quot;}, {&quot;Device_2&quot;}, {&quot;Device_3&quot;}, {&quot;Device_4&quot;}, {&quot;Device_5&quot;}, {&quot;Device_6&quot;}, {&quot;Device_7&quot;}, {&quot;Device_8&quot;}}</td><td>{{&quot;Device_1&quot;}, {&quot;Device_2&quot;}, {&quot;Device_3&quot;}, {&quot;Device_4&quot;}, {&quot;Device_5&quot;}, {&quot;Device_6&quot;}, {&quot;Device_7&quot;}, {&quot;Device_8&quot;}}</td></tr><tr><td>Width_Bytes</td><td>8</td><td>8</td></tr><tr><td>Arbiter_Mode</td><td>FCFS</td><td>FCFS</td></tr><tr><td>Split_Retry_Flag</td><td>true</td><td>true</td></tr><tr><td>FIFO_Buffers</td><td>2</td><td>2</td></tr></table> <h2>BusInterface</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>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>Bus_Name</td><td>&quot;Bus_1&quot;</td><td>&quot;Bus_1&quot;</td></tr><tr><td>Port_Name_1</td><td>&quot;Port_1&quot;</td><td>&quot;Port_1&quot;</td></tr><tr><td>Port_Name_2</td><td>&quot;Port_2&quot;</td><td>&quot;Port_2&quot;</td></tr><tr><td>FIFO_Buffers</td><td>8</td><td>8</td></tr><tr><td>Enable_Hello_Messages</td><td>true</td><td>true</td></tr></table> <h2>Rapid_IO_Node4</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>Fields Added for Rapid_IO operation:\\nA_Message = &quot;doorbell&quot;, &quot;XON&quot;, &quot;XOFF&quot;, &quot;data&quot;\\nA_Channel = channel designator\\n</td><td>Fields Added for Rapid_IO operation:\\nA_Message = &quot;doorbell&quot;, &quot;XON&quot;, &quot;XOFF&quot;, &quot;data&quot;\\nA_Channel = channel designator\\n</td></tr><tr><td>Block_Name</td><td>&quot;RIO_4&quot;</td><td>&quot;RIO_4&quot;</td></tr><tr><td>Optional_Parameters</td><td>/* First row contains Column Names.              */\\nParameter_Name                 Parameter_Value  \\nPath                           none             \\nRead_File                      none             \\nSelf_Start                     false            \\nParam_Script                   none             \\nListen_to_File                 none             \\nDuplicate_Input                true             \\nProfile                        0                \\nProfile_File                   none             \\nMaximum_Loops                  1000000          \\nBlock_Reference                Block_Name       \\nPort_Order_Array               {&quot;input&quot;}      \\n</td><td>/* First row contains Column Names.              */\\nParameter_Name                 Parameter_Value  \\nPath                           none             \\nRead_File                      none             \\nSelf_Start                     false            \\nParam_Script                   none             \\nListen_to_File                 none             \\nDuplicate_Input                true             \\nProfile                        0                \\nProfile_File                   none             \\nMaximum_Loops                  1000000          \\nBlock_Reference                Block_Name       \\nPort_Order_Array               {&quot;input&quot;}      \\n</td></tr><tr><td>Single_Cycle</td><td>false</td><td>false</td></tr><tr><td>Breakpoint</td><td>&quot;none&quot;</td><td>&quot;none&quot;</td></tr><tr><td>Self_Start</td><td>true</td><td>true</td></tr><tr><td>Speed_Mhz</td><td>500.0</td><td>500.0</td></tr><tr><td>Width_Bytes</td><td>8</td><td>8</td></tr><tr><td>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>Number_of_Channels</td><td>1 /* available for transmission */</td><td>1</td></tr><tr><td>Channel_Field_Name</td><td>&quot;INDEX&quot;</td><td>&quot;INDEX&quot;</td></tr><tr><td>Max_Queue_Length</td><td>32</td><td>32</td></tr><tr><td>Max_Output_Length</td><td>8</td><td>8</td></tr><tr><td>Send_Status_Messages</td><td>Status_Messages</td><td>true</td></tr></table> <h2>Rapid_IO_Node3</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>Fields Added for Rapid_IO operation:\\nA_Message = &quot;doorbell&quot;, &quot;XON&quot;, &quot;XOFF&quot;, &quot;data&quot;\\nA_Channel = channel designator\\n</td><td>Fields Added for Rapid_IO operation:\\nA_Message = &quot;doorbell&quot;, &quot;XON&quot;, &quot;XOFF&quot;, &quot;data&quot;\\nA_Channel = channel designator\\n</td></tr><tr><td>Block_Name</td><td>&quot;RIO_3&quot;</td><td>&quot;RIO_3&quot;</td></tr><tr><td>Optional_Parameters</td><td>/* First row contains Column Names.              */\\nParameter_Name                 Parameter_Value  \\nPath                           none             \\nRead_File                      none             \\nSelf_Start                     false            \\nParam_Script                   none             \\nListen_to_File                 none             \\nDuplicate_Input                true             \\nProfile                        0                \\nProfile_File                   none             \\nMaximum_Loops                  1000000          \\nBlock_Reference                Block_Name       \\nPort_Order_Array               {&quot;input&quot;}      \\n</td><td>/* First row contains Column Names.              */\\nParameter_Name                 Parameter_Value  \\nPath                           none             \\nRead_File                      none             \\nSelf_Start                     false            \\nParam_Script                   none             \\nListen_to_File                 none             \\nDuplicate_Input                true             \\nProfile                        0                \\nProfile_File                   none             \\nMaximum_Loops                  1000000          \\nBlock_Reference                Block_Name       \\nPort_Order_Array               {&quot;input&quot;}      \\n</td></tr><tr><td>Single_Cycle</td><td>false</td><td>false</td></tr><tr><td>Breakpoint</td><td>&quot;none&quot;</td><td>&quot;none&quot;</td></tr><tr><td>Self_Start</td><td>true</td><td>true</td></tr><tr><td>Speed_Mhz</td><td>500.0</td><td>500.0</td></tr><tr><td>Width_Bytes</td><td>8</td><td>8</td></tr><tr><td>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>Number_of_Channels</td><td>1 /* available for transmission */</td><td>1</td></tr><tr><td>Channel_Field_Name</td><td>&quot;INDEX&quot;</td><td>&quot;INDEX&quot;</td></tr><tr><td>Max_Queue_Length</td><td>32</td><td>32</td></tr><tr><td>Max_Output_Length</td><td>8</td><td>8</td></tr><tr><td>Send_Status_Messages</td><td>Status_Messages</td><td>true</td></tr></table> <h2>Rapid_IO_Node</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>Fields Added for Rapid_IO operation:\\nA_Message = &quot;doorbell&quot;, &quot;XON&quot;, &quot;XOFF&quot;, &quot;data&quot;\\nA_Channel = channel designator\\n</td><td>Fields Added for Rapid_IO operation:\\nA_Message = &quot;doorbell&quot;, &quot;XON&quot;, &quot;XOFF&quot;, &quot;data&quot;\\nA_Channel = channel designator\\n</td></tr><tr><td>Block_Name</td><td>&quot;RIO_1&quot;</td><td>&quot;RIO_1&quot;</td></tr><tr><td>Optional_Parameters</td><td>/* First row contains Column Names.              */\\nParameter_Name                 Parameter_Value  \\nPath                           none             \\nRead_File                      none             \\nSelf_Start                     false            \\nParam_Script                   none             \\nListen_to_File                 none             \\nDuplicate_Input                true             \\nProfile                        0                \\nProfile_File                   none             \\nMaximum_Loops                  1000000          \\nBlock_Reference                Block_Name       \\nPort_Order_Array               {&quot;input&quot;}      \\n</td><td>/* First row contains Column Names.              */\\nParameter_Name                 Parameter_Value  \\nPath                           none             \\nRead_File                      none             \\nSelf_Start                     false            \\nParam_Script                   none             \\nListen_to_File                 none             \\nDuplicate_Input                true             \\nProfile                        0                \\nProfile_File                   none             \\nMaximum_Loops                  1000000          \\nBlock_Reference                Block_Name       \\nPort_Order_Array               {&quot;input&quot;}      \\n</td></tr><tr><td>Single_Cycle</td><td>false</td><td>false</td></tr><tr><td>Breakpoint</td><td>&quot;none&quot;</td><td>&quot;none&quot;</td></tr><tr><td>Self_Start</td><td>true</td><td>true</td></tr><tr><td>Speed_Mhz</td><td>500.0</td><td>500.0</td></tr><tr><td>Width_Bytes</td><td>8</td><td>8</td></tr><tr><td>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>Number_of_Channels</td><td>1 /* available for transmission */</td><td>1</td></tr><tr><td>Channel_Field_Name</td><td>&quot;INDEX&quot;</td><td>&quot;INDEX&quot;</td></tr><tr><td>Max_Queue_Length</td><td>32</td><td>32</td></tr><tr><td>Max_Output_Length</td><td>8</td><td>8</td></tr><tr><td>Send_Status_Messages</td><td>Status_Messages</td><td>true</td></tr></table> <h2>Non_Block_Chan_SW</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>Note: Only Supports Busses Attached for auto-routing, \\nnot Devices, such as memory.  If Memory Attached, \\nadd manually to Routing Table.\\n\\nOne Cycle per transaction sent across switch.</td><td>Note: Only Supports Busses Attached for auto-routing, \\nnot Devices, such as memory.  If Memory Attached, \\nadd manually to Routing Table.\\n\\nOne Cycle per transaction sent across switch.</td></tr><tr><td>Block_Name</td><td>&quot;NBC_Switch&quot;</td><td>&quot;NBC_Switch&quot;</td></tr><tr><td>Optional_Parameters</td><td>/* First row contains Column Names.              */\\nParameter_Name                 Parameter_Value  \\nPath                           none             \\nRead_File                      none             \\nSelf_Start                     false            \\nParam_Script                   none             \\nListen_to_File                 none             \\nDuplicate_Input                true             \\nProfile                        0                \\nProfile_File                   none             \\nMaximum_Loops                  1000000          \\nBlock_Reference                Block_Name       \\nPort_Order_Array               {&quot;input&quot;}      \\n</td><td>/* First row contains Column Names.              */\\nParameter_Name                 Parameter_Value  \\nPath                           none             \\nRead_File                      none             \\nSelf_Start                     false            \\nParam_Script                   none             \\nListen_to_File                 none             \\nDuplicate_Input                true             \\nProfile                        0                \\nProfile_File                   none             \\nMaximum_Loops                  1000000          \\nBlock_Reference                Block_Name       \\nPort_Order_Array               {&quot;input&quot;}      \\n</td></tr><tr><td>Single_Cycle</td><td>false</td><td>false</td></tr><tr><td>Breakpoint</td><td>&quot;none&quot;</td><td>&quot;none&quot;</td></tr><tr><td>Self_Start</td><td>true</td><td>true</td></tr><tr><td>Speed_Mhz</td><td>500.0</td><td>500.0</td></tr><tr><td>Width_Bytes</td><td>8</td><td>8</td></tr><tr><td>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>Channel_Field_Name</td><td>&quot;INDEX&quot;</td><td>&quot;INDEX&quot;</td></tr></table>

"The gap between CPU and memory speed has always been a critical concern that motivated researchers to study and analyze the performance of memory hierarchical architectures. In the early stages of the design cycle, performance evaluation methodologies can be used to leverage exploration at the architectural level and assist in making early design tradeoffs. In this paper, we use simulation platforms developed using the VisualSim tool to compare the performance of two memory architectures, namely, the Direct Connect architecture of the Opteron, and the Shared Bus of the Xeon multicore processors. Key variations exist between the two memory architectures and both design approaches provide rich platforms that call for the early use of virtual system prototyping and simulation techniques to assess performance at an early stage in the design cycle.

(PDF) Virtual Prototyping and Performance.... Available from: https://www.researchgate.net/publication/43170333_Virtual_Prototyping_and_Performance_Analysis_of_Two_Memory_Architectures"