1 / 9

Behavior and Software Modeling

Behavior and Software Modeling. MPEG Decoder Mapping on Mobile Phone Architecture. Model Purpose and Criteria. Different methods to model behavior/ software Mapping of behavior on hardware and software Experimentation and analysis Performance, resource utilization and power consumption

dyllis
Download Presentation

Behavior and Software Modeling

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Behavior and Software Modeling MPEG Decoder Mapping on Mobile Phone Architecture

  2. Model Purpose and Criteria • Different methods to model behavior/ software • Mapping of behavior on hardware and software • Experimentation and analysis • Performance, resource utilization and power consumption • Compare the performance on the three architectures Mirabilis Designã Confidential

  3. Top-Level Model Three Architectures Select Parameters Traffic Source Computing & Plotting Software Definition Mirabilis Designã Confidential

  4. Architecture Architecture Parameters Architecture Resources Data Routing Between resources Mirabilis Designã Confidential

  5. Behavior Modeling: Define instructions an provide latency to Scheduler Three Sequences Behavior Modeling in the uEngine LBL Video_Packet_Loop ; /* Video Packet Loop */ ACT input wait ; /* Wait for DS In */ ACT DS_Out = Input_Queue ; /* Input Queue */ LBL Execute_on_Processor ; /* Schedule Resource */ ACT DS_Out.Task_Time = rand(1000.0, 2000.0) ; /* Execute on Processor */ ACT DS_Out.Cell_Command = Mapping_Name ; /* Send to Mapping Name */ ACT DS_Out.INDEX = Plot_ID ; /* Send to Task ID */ ACT output2 send DS_Out ; /* Send Packet Out */ ACT input2 wait ; /* Wait for Complete */ ACT DS_Out = Input_Queue ; /* Input Queue */ LBL Execute_on_Bus ; /* Schedule Resource */ ACT DS_Out.Task_Time = rand(100.0, 200.0) ; /* Execute on Bus */ ACT Text_ = "B" ; /* Construct Dest */ ACT Text_ += Integer_ ; /* Construct Dest */ ACT DS_Out.Cell_Command = Text_ ; /* Send to Mapping Name */ ACT DS_Out.INDEX = 1 ; /* Send to Task ID */ ACT output2 send DS_Out ; /* Send Packet Out */ ACT input2 wait ; /* Wait for Complete */ ACT DS_Out = Input_Queue ; /* Input Queue */ LBL Execute_on_Cache ; /* Schedule Resource */ ACT DS_Out.Task_Time = rand(100.0, 200.0) ; /* Execute on Cache */ ACT Text_ = "C" ; /* Construct Dest */ ACT Text_ += Integer_ ; /* Construct Dest */ ACT DS_Out.Cell_Command = Text_ ; /* Send to Mapping Name */ ACT DS_Out.INDEX = 2 ; /* Send to Task ID */ ACT output2 send DS_Out ; /* Send Packet Out */ ACT input2 wait ; /* Wait for Complete */ ACT DS_Out = Input_Queue ; /* Input Queue */ LBL Send_Packet_Out ; /* Done with Tasks */ ACT output send DS_Out ; /* Send Packet Out */ Send to Task_Issue Mirabilis Designã Confidential

  6. Behavior Modeling: Describe pseudo code and latency per task Behavior and Latency Modeling in uEngine LBL Psuedo_Code ; /* SWT adds delay */ ACT Software_Time = irand(1000, 2000) ; /* Convert to Double */ ACT Software_Time *= SWT ; /* Cycle Time */ ACT Software_Time wait ; /* Process Algorithm 1 */ LBL Cycle_Per_Instruction ; SWT JIF Integer_ < 1500 +3 ; /* Follow-On Process */ SWT ACT Integer_ = 1500 - Integer_ ; /* Make a Calc */ SWT GTO +2 ; SWT ACT Integer_ = Integer_ - 1500 ; /* Make a Calc */ SWT WHL Integer_ >= 0 Ext_Code_Execution ; /* While Loop */ SWT ACT Software_Time = SWT * 2.0 ; /* Times 2.0 */ ACT Software_Time wait ; /* Wait for 2 Cycles */ SWT RTN Integer_ -- ; /* End of Loop */ LBL Ext_Code_Execution ; ACT Software_Time = TReal ; /* Wall Clock */ ACT output send DS_Out ; /* Send Packet to SW */ ACT input wait ; /* Wait SW to Finish */ ACT Text2_ = Input_Queue ; /* Input Queue */ ACT Software_Time = TReal - Software_Time ; /* Delta Wall Clock */ ACT Software_Time *= 1.0E-03 ; /* Convert to Seconds */ ACT DS_Out.Task_Time = Software_Time / SW_Cycles_per_Sec ; /* Store in DS */ ACT output2 send DS_Out ; /* Send Packet Out */ GTO Video_Packet_Loop ; /* Repeat */ Latency in DLY Column using a parameter Delay using “wait” statement Mirabilis Designã Confidential

  7. uEngine Software estimation Code LBL Video_Packet_Loop ; /* Video Packet Loop */ ACT input2 wait ; /* Wait for DS In */ ACT DS_Out = Input_Queue ; /* Input Queue */ ACT Software_Time = TReal ; /* Wall Clock */ ACT output send DS_Out ; /* Send Packet to SW */ ACT input wait ; /* Wait for SW to Exec */ ACT Text_ = Input_Queue ; /* Input Queue */ ACT Software_Time = TReal - Software_Time ; /* Wall Clock Time */ JIT Software_Time < 1.0 +4 ; /* Fast Software? */ ACT Software_Time *= 1.0E-03 ; /* Convert Msec to Sec */ ACT Software_Time /= SW_Cycles_per_Sec ; /* Convert Cycl to Sec */ ACT DS_Out.Task_Time = Software_Time ; /* Store in DS */ ACT output2 send DS_Out ; /* Send Packet Out */ GTO Video_Packet_Loop ; /* Repeat */ Software Code Estimation • Create a C Wrapper in VisualSim for the decoder code • Attached the input and output of the wrapper to the uEngine block • Connect output2 of uEngine to a Task_Issue • The Real Time difference between the input and output to code is the processing time Mirabilis Designã Confidential

  8. Latency and Power Analysis Total Latency for the same operation on different architectures Total Power for the same operation on different architectures Mirabilis Designã Confidential

  9. Resource Task Graph Activity at each resource on a timeline Mirabilis Designã Confidential

More Related