US8825465B2 - Simulation apparatus and method for multicore system - Google Patents

Simulation apparatus and method for multicore system Download PDF

Info

Publication number
US8825465B2
US8825465B2 US13/171,017 US201113171017A US8825465B2 US 8825465 B2 US8825465 B2 US 8825465B2 US 201113171017 A US201113171017 A US 201113171017A US 8825465 B2 US8825465 B2 US 8825465B2
Authority
US
United States
Prior art keywords
module
modules
data
simulation
bundle data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related, expires
Application number
US13/171,017
Other versions
US20120158394A1 (en
Inventor
Young-Chul Cho
Soo-jung Ryu
Moo-Kyoung CHUNG
Ho-Young Kim
Woong Seo
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Assigned to SAMSUNG ELECTRONICS CO., LTD. reassignment SAMSUNG ELECTRONICS CO., LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CHO, YOUNG CHUL, CHUNG, MOO KYOUNG, KIM, HO YOUNG, RYU, SOO JUNG, SEO, WOONG
Publication of US20120158394A1 publication Critical patent/US20120158394A1/en
Application granted granted Critical
Publication of US8825465B2 publication Critical patent/US8825465B2/en
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • G06F17/5009
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17318Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17325Synchronisation; Hardware support therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Definitions

  • the following description relates to a simulation apparatus and method for a multicore system, and in addition, to a simulation apparatus and method for a multicore system that uses timing information of modules in the multicore system.
  • Multicore systems are equipped with two or more processing cores that are capable of processing one or more tasks in parallel.
  • the performance of a multicore system can be improved by appropriately distributing tasks between a plurality of processing cores in an effort to handle applications suitable for parallel processing.
  • Multicore systems can deliver better performance at lower costs through parallel processing in comparison to single-core systems.
  • multicore systems generally need more components such as processing cores, memories, direct memory access controllers (DMAC), interrupt controllers (ITCs), timers, and the like, in comparison to the single-core systems. Accordingly, the connections between components are typically more complicated in a multicore system than in a single-core system. Based on the architecture of a multicore system it is possible to improve the performance of the multicore system and reduce the power consumption of multicore system.
  • DMAC direct memory access controllers
  • ITCs interrupt controllers
  • timers timers
  • components and communication architectures of each multicore architecture may be implemented as modules.
  • the modules may be used to facilitate the reconfiguration of each multicore architecture and the modification of parameters (such as memory capacity).
  • parameters such as memory capacity
  • appropriate processing techniques may be required to properly transmit data and control signals between the modules.
  • a simulation apparatus for a multicore system, the simulation apparatus including an architecture configuration unit configured to select a plurality of modules to be synchronized in terms of function execution timing based on timing information included in bundle data, and configured to configure a multicore system architecture model using the selected modules, and a simulation engine unit configured to acquire function execution timing information of the modules, control the execution of functions by the modules based on the acquired function execution timing information, and output the results of the control of the execution of functions by the modules.
  • the simulation apparatus may further comprise a trace generation unit configured to generate a trace corresponding to function execution information of the modules.
  • the timing information may comprise request time information of a module transmitting data and latency information of a module receiving the data.
  • the modules may comprise at least one master module and at least one slave module.
  • the at least one master module may comprise a data generator configured to generate the bundle data including the timing information, a master interface configured to transmit the bundle data to another module, and a time synchronizer configured to synchronize the function execution time of the at least one master module with a simulation time of the simulation engine unit.
  • the at least one slave module may comprise a slave interface configured to receive the bundle data from the at least one master module, a data storage configured to store the bundle data, and a controller configured to control the function execution time of the at least one slave module based on the timing information of the bundle data.
  • the at least one slave module may further comprise an address decoder configured to decode destination address information that is included in the bundle data.
  • a simulation method for a multicore system including selecting a plurality of modules to be synchronized in terms of function execution timing based on timing information of bundle data, generating a multicore system architecture model using the selected modules, acquiring function execution timing information of the modules, controlling the execution of functions by the modules based on the acquired function execution timing information, and outputting the results of the execution of functions by the modules.
  • the simulation method may further comprise generating a trace corresponding to function execution information of the modules.
  • the timing information may comprise request time information of a module transmitting data and latency information of a module receiving the data.
  • the modules may comprise at least one master module and at least one slave module.
  • the at least one master module may comprise a data generator configured to generate the bundle data including the timing information, a master interface configured to transmit the bundle data to another module, and a time synchronizer configured to synchronize the function execution time of the at least one master module with a simulation time of the simulation engine unit.
  • the at least one slave module may comprise a slave interface configured to receive the bundle data from the at least one master module, a data storage configured to store the bundle data, and a controller configured to control the function execution time of the at least one slave module based on the timing information of the bundle data.
  • the at least one slave module may acquire destination address information included in the bundle data and, if the acquired destination address information includes an address of another module, the at least one slave module may transmit the bundle data to the module corresponding to the address included in the acquired destination address information.
  • a module-based multicore simulator for a multicore processor, the module-based simulator including a master module configured to receive a function call from a simulation engine, configured to determine the execution time of each module of the multicore simulator based on simulation time information received from the simulation engine, and configured to generate bundle data comprising timing information, and at least one slave module configured to analyze the bundle data including the timing information generated by the master module and configured to execute an instruction of the at least one slave module at a time specified in the timing information.
  • the master module may be configured to transmit a pointer of the bundle data to the at least one slave module, and the at least one slave module may be configured to analyze the bundle data including the timing information based on the pointer received from the master module.
  • the master module may comprise a data generator configured to generate the bundle data including the timing information, a master interface configured to transmit the bundle data to the at least one slave module, and a time synchronizer configured to synchronize the function execution time of the master module with a simulation time of the simulation engine.
  • Each of the at least one slave modules may comprise a slave interface configured to receive the bundle data from the master module and/or one or more other slave modules, a data storage configured to store the bundle data, and a controller configured to control the function execution time of the slave module based on the timing information of the bundle data.
  • FIG. 1 is a diagram illustrating an example of a simulation apparatus for a multicore system.
  • FIG. 2 is a diagram illustrating an example of a master module and a slave module.
  • FIG. 3 is a diagram illustrating an example of bundle data including timing information.
  • FIG. 4A is a diagram illustrating an example of the occurrence of a bus collision between modules.
  • FIG. 4B is a diagram illustrating an example of the prevention of a bus collision through the synchronization of the function execution times of modules.
  • FIG. 5 is a flowchart illustrating an example of a simulation method for a multicore system.
  • FIG. 1 illustrates an example of a simulation apparatus for a multicore system.
  • the simulation apparatus may be included in a device for processing data, for example, a processor, a computer, a mobile terminal, a smart phone, a laptop computer, a personal digital assistant, a tablet, an MP3 player, and the like.
  • simulation apparatus 100 includes an architecture configuration unit 110 , a library 130 , a trace generation unit 150 , and a simulation engine unit 170 .
  • the architecture configuration unit 110 may receive data that corresponds to the architecture of a multicore system, and may select one or more components that constitute the architecture of the multicore system from the library 130 .
  • the architecture configuration unit 110 may configure a model (hereinafter referred to as the multicore system architecture model) for the architecture of the multicore system by arranging the selected components.
  • the apparatus 100 may be a module-based multicore simulator, and components and communication architectures may be stored in the library 130 as modules. Accordingly, it is possible to easily reconfigure a multicore architecture using the modules.
  • Various types of components that can be used in the multicore system may be stored in the library 130 in a compiled state. Each component stored in the library 130 may be readily instanced in response to a signal being received from the architecture configuration unit 110 .
  • the types of components that can be stored in the library 130 may be set in advance.
  • Information corresponding to each of the components stored in the library 130 may also be stored in the library 130 .
  • DMAC direct memory access controller
  • the power consumptions and data processing speeds of the DMAC, the configuration memory, the cache, and the interface may be stored in the library 130 .
  • components and communication architectures may be stored in the library 130 as modules.
  • the modules may include a master module that has a master interface, a slave module that has a slave interface, and/or a module that has both the master and slave interfaces.
  • modules may transmit/receive data or control signals to/from one another via their interfaces. The structure of master and slave modules is further described with reference to FIG. 2 .
  • the simulation engine unit 170 may acquire timing information of the execution of functions of a plurality of modules of the multicore system architecture model.
  • the simulation engine unit 170 may control the execution of functions by the modules and may output the results of the control.
  • the simulation engine unit 170 may simulate the multicore system architecture model.
  • the simulation of the multicore system architecture model may be performed to determine, for example, the power consumption and data processing speed of the multicore system.
  • the simulation engine unit 170 may output the results of the simulation of the multicore system architecture model.
  • the results of the simulation of the multicore system architecture model may include numeric data corresponding to the power consumption and data processing speed of the multicore system.
  • the trace generation unit 150 may generate a trace corresponding to the execution of functions by the modules of the multicore system architecture model. To determine whether a target routine currently being executed in each of the modules of the multicore system architecture model is operating properly, the trace generation unit 150 may print out an instruction of the target routine, the address of the instruction, and the content of each register at a time immediately after the execution of the instruction each time the instruction is executed. As another example, the trace generation unit 150 may print out the instruction, the address, and the content, in response to a jump instruction or a particular instruction being executed.
  • FIG. 2 illustrates an example of a master module and a slave module.
  • master module 210 includes a master interface 211 , a data generator 213 , and a time synchronizer 215 .
  • the master interface 211 is an interface for transmitting data and/or control signals to another module. The data and/or control signals may be generated in the master module 210 .
  • the master module 210 may communicate with other modules, for example, another master module or a slave module 230 via the master interface 211 .
  • An instruction for executing a function via the master interface 211 may be stored in the trace generation unit 150 that is shown in FIG. 1 .
  • the master interface 211 may receive a function call signal from a simulation engine and may transmit an operation instruction for a function that corresponds to the received function call signal.
  • the data generator 213 may generate bundle data.
  • the bundle data may include timing information.
  • the timing information may include request time information corresponding to a transmitter module and response time information corresponding to a receiver module.
  • the bundle data may include signal information such as an address, a read/write, a response, data size, and the like.
  • the bundle data may include timing information such as request time and latency.
  • the timing information included in the bundle data may prevent a bus collision from occurring during the communication between modules and may provide precise simulation results.
  • the structure of the bundle data is further described with reference to FIG. 3 .
  • FIG. 3 illustrates an example of bundle data including timing information.
  • bundle data for the communication between modules may be written in various programming languages, for example, a C++ language.
  • Bundle data including request time information and latency information may be transmitted between a master module ‘unit 64’ and a slave module ‘unit 32.’
  • Data may also be transmitted between the master module ‘unit 64’ and the slave module ‘unit 32’ via various pointers, for example, pointers ‘address32’ and ‘address64.’
  • the master module ‘unit 64’ may provide data to the slave module ‘unit 32’ and the slave module ‘unit 32’ may process the data provided by the master module ‘unit 64.’
  • buses or signal protocols are implemented individually through a function call.
  • a module that has generated bundle data may transmit the bundle data to a module that is supposed to process the bundle data only through one or more other modules.
  • the communication overhead may be reduced by transmitting the pointer of the bundle data to each of the intermediate modules. That is, due to the use of the bundle data in this example, including timing information, there is no need to perform a function call for each of the intermediate functions.
  • the time synchronizer 215 may synchronize the function execution time of the master module 210 with the simulation time of the simulation engine unit 170 .
  • the simulation engine unit 170 may provide the master module 210 with simulation time information for each of the modules of the multicore system architecture model.
  • the time synchronizer 215 of the master module 210 may determine the function execution time of each module of the multicore system architecture model by analyzing the simulation time information.
  • the time synchronizer 215 may synchronize the modules of the multicore system architecture model with one another in terms of function execution time, based on the simulation time information.
  • the time synchronizer 215 may be connected to the data generator 213 , and may control the data generator 213 to generate bundle data based on the simulation time information.
  • the slave module 230 includes a slave interface 231 , storage 233 , a controller 235 , and an address decoder 237 .
  • the slave interface 231 allows the slave module 230 to exchange data with another module. Data transmitted or received via the slave interface 231 may be stored in the storage 233 .
  • the storage 233 may store bundle data that is generated by the master module 210 .
  • the controller 235 may analyze the timing information of the bundle data and may control the function execution time of the slave module 230 .
  • the address decoder 237 may be connected to the slave interface 231 and may identify a final destination address of the bundle data.
  • the address decoder 237 may transmit the bundle data to a module that corresponds to the final destination address of the bundle data.
  • a trace may be generated by the trace generation unit 150 shown in FIG. 1 .
  • the simulation engine unit 170 shown in FIG. 1 may not directly call the slave module 230 that includes the slave interface 231 . That is, because of the use of the bundle data including timing information, the simulation engine unit 170 may perform a function call for only the master module 210 . This is different from conventional simulation in which a function call needs to be performed for all modules during the simulation of the modules.
  • the slave module 230 may execute an instruction at a request time that is specified in the bundle data provided by the master module 210 .
  • FIG. 4A illustrates an example of the occurrence of a bus collision between modules
  • FIG. 4B illustrates an example of the prevention of the occurrence of a bus collision between modules.
  • a collision occurs between a bus that processes data for module 1 and a bus that processes data for module 2 .
  • the function execution timing of modules 1 and 2 may be adjusted. For example, if a bus collision occurs during the execution of functions by modules 1 and 2 as part of a simulation process, the function execution time of one of modules 1 and 2 may be adjusted. Accordingly, it is possible to prevent the occurrence of a bus collision between modules 1 and 2 by using bundle data including timing information corresponding to the execution of functions by modules 1 and 2 .
  • modules 1 and 2 may exchange timing information that includes request time information and latency information.
  • the function execution times of modules 1 and 2 may be synchronized with each other based on the request time information.
  • the function execution times of modules 1 and 2 may be synchronized by delaying a function call for module 1 or by advancing a function call for module 2 . As a result, it is possible to prevent the occurrence of a bus collision between modules 1 and 2 during a simulation process.
  • FIG. 5 illustrates an example of a simulation method for a multicore system.
  • a plurality of modules to be synchronized in terms of function execution timing are selected from a library, and a multicore system architecture model is configured using the selected model ( 500 ).
  • the plurality of modules may be synchronized based on timing information of bundle data.
  • the bundle data may include request time information of a module transmitting data and latency information of a module receiving the data.
  • the modules that constitute a multicore system may include one or more master modules that have a master interface and one or more slave modules that have a slave interface.
  • the master modules may generate bundle data including timing information and may transmit the bundle data to other modules via the master interface.
  • the function execution times of the master modules may be synchronized.
  • the slave modules receive the bundle data from the master modules.
  • the function execution times of the slave modules may be controlled using the timing information of the bundle data.
  • the slave modules may acquire a destination address of the bundle data. If the destination address of the bundle data specifies modules other than the slave modules, the slave modules may transmit the bundle data to the modules specified by the destination address of the bundle data.
  • the function execution timing information of each of the modules of the multicore system architecture model is acquired, the execution of functions by the modules is controlled based on the acquired function execution timing information, and the results of the control are output ( 510 ).
  • a trace information corresponding to function execution information of the modules of the multicore system architecture model may be configured. Accordingly, it is possible to easily identify function execution information of each of the modules of the multicore system architecture model from the trace.
  • Program instructions to perform a method described herein, or one or more operations thereof, may be recorded, stored, or fixed in one or more computer-readable storage media.
  • the program instructions may be implemented by a computer.
  • the computer may cause a processor to execute the program instructions.
  • the media may include, alone or in combination with the program instructions, data files, data structures, and the like.
  • Examples of computer-readable storage media include magnetic media, such as hard disks, floppy disks, and magnetic tape; optical media such as CD ROM disks and DVDs; magneto-optical media, such as optical disks; and hardware devices that are specially configured to store and perform program instructions, such as read-only memory (ROM), random access memory (RAM), flash memory, and the like.
  • Examples of program instructions include machine code, such as produced by a compiler, and files containing higher level code that may be executed by the computer using an interpreter.
  • the program instructions that is, software
  • the program instructions may be distributed over network coupled computer systems so that the software is stored and executed in a distributed fashion.
  • the software and data may be stored by one or more computer readable storage mediums.
  • functional programs, codes, and code segments for accomplishing the example embodiments disclosed herein can be easily construed by programmers skilled in the art to which the embodiments pertain based on and using the flow diagrams and block diagrams of the figures and their corresponding descriptions as provided herein.
  • the described unit to perform an operation or a method may be hardware, software, or some combination of hardware and software.
  • the unit may be a software package running on a computer or the computer on which that software is running.
  • a terminal/device/unit described herein may refer to mobile devices such as a cellular phone, a personal digital assistant (PDA), a digital camera, a portable game console, and an MP3 player, a portable/personal multimedia player (PMP), a handheld e-book, a portable lab-top PC, a global positioning system (GPS) navigation, and devices such as a desktop PC, a high definition television (HDTV), an optical disc player, a setup box, and the like capable of wireless communication or network communication consistent with that disclosed herein.
  • mobile devices such as a cellular phone, a personal digital assistant (PDA), a digital camera, a portable game console, and an MP3 player, a portable/personal multimedia player (PMP), a handheld e-book, a portable lab-top PC, a global positioning system (GPS) navigation, and devices such as a desktop PC, a high definition television (HDTV), an optical disc player, a setup box, and the like capable of wireless communication or network communication consistent with that disclosed herein.
  • a computing system or a computer may include a microprocessor that is electrically connected with a bus, a user interface, and a memory controller. It may further include a flash memory device.
  • the flash memory device may store N-bit data via the memory controller. The N-bit data is processed or will be processed by the microprocessor and N may be 1 or an integer greater than 1.
  • a battery may be additionally provided to supply operation voltage of the computing system or computer.
  • the computing system or computer may further include an application chipset, a camera image processor (CIS), a mobile Dynamic Random Access Memory (DRAM), and the like.
  • the memory controller and the flash memory device may constitute a solid state drive/disk (SSD) that uses a non-volatile memory to store data.
  • SSD solid state drive/disk

Abstract

A simulation apparatus and method for a multicore system are provided. The simulation apparatus may prevent the occurrence of a data collision during the communication between modules and may reduce the overhead generated during simulation. The simulation apparatus may select a plurality of modules to be synchronized in terms of function execution timing based on timing information and may configure a multicore system architecture model using the selected modules. The simulation apparatus may acquire function execution timing information of the modules, control the execution of functions by the modules based on the acquired function execution timing information, and output the results of the control of the execution of functions by the modules.

Description

CROSS-REFERENCE TO RELATED APPLICATION(S)
This application claims the benefit under 35 U.S.C. §119(a) of Korean Patent Application No. 10-2010-0131628, filed on Dec. 21, 2010, in the Korean Intellectual Property Office, the entire disclosure of which is incorporated herein by reference for all purposes.
BACKGROUND
1. Field
The following description relates to a simulation apparatus and method for a multicore system, and in addition, to a simulation apparatus and method for a multicore system that uses timing information of modules in the multicore system.
2. Description of the Related Art
Multicore systems are equipped with two or more processing cores that are capable of processing one or more tasks in parallel. The performance of a multicore system can be improved by appropriately distributing tasks between a plurality of processing cores in an effort to handle applications suitable for parallel processing. Multicore systems can deliver better performance at lower costs through parallel processing in comparison to single-core systems.
However, multicore systems generally need more components such as processing cores, memories, direct memory access controllers (DMAC), interrupt controllers (ITCs), timers, and the like, in comparison to the single-core systems. Accordingly, the connections between components are typically more complicated in a multicore system than in a single-core system. Based on the architecture of a multicore system it is possible to improve the performance of the multicore system and reduce the power consumption of multicore system.
To simulate different multicore architectures and evaluate the performance of different multicore architectures, components and communication architectures of each multicore architecture may be implemented as modules. The modules may be used to facilitate the reconfiguration of each multicore architecture and the modification of parameters (such as memory capacity). In addition, appropriate processing techniques may be required to properly transmit data and control signals between the modules.
Conventional module-based multicore simulators perform a function call using buses or signal protocols to handle the communication between modules. However, repeated function calls for each module may incur a considerable amount of simulation overhead which can reduce the overall system efficiency.
SUMMARY
In one general aspect, there is provided a simulation apparatus for a multicore system, the simulation apparatus including an architecture configuration unit configured to select a plurality of modules to be synchronized in terms of function execution timing based on timing information included in bundle data, and configured to configure a multicore system architecture model using the selected modules, and a simulation engine unit configured to acquire function execution timing information of the modules, control the execution of functions by the modules based on the acquired function execution timing information, and output the results of the control of the execution of functions by the modules.
The simulation apparatus may further comprise a trace generation unit configured to generate a trace corresponding to function execution information of the modules.
The timing information may comprise request time information of a module transmitting data and latency information of a module receiving the data.
The modules may comprise at least one master module and at least one slave module.
The at least one master module may comprise a data generator configured to generate the bundle data including the timing information, a master interface configured to transmit the bundle data to another module, and a time synchronizer configured to synchronize the function execution time of the at least one master module with a simulation time of the simulation engine unit.
The at least one slave module may comprise a slave interface configured to receive the bundle data from the at least one master module, a data storage configured to store the bundle data, and a controller configured to control the function execution time of the at least one slave module based on the timing information of the bundle data.
The at least one slave module may further comprise an address decoder configured to decode destination address information that is included in the bundle data.
In another aspect, there is provided a simulation method for a multicore system, the simulation method including selecting a plurality of modules to be synchronized in terms of function execution timing based on timing information of bundle data, generating a multicore system architecture model using the selected modules, acquiring function execution timing information of the modules, controlling the execution of functions by the modules based on the acquired function execution timing information, and outputting the results of the execution of functions by the modules.
The simulation method may further comprise generating a trace corresponding to function execution information of the modules.
The timing information may comprise request time information of a module transmitting data and latency information of a module receiving the data.
The modules may comprise at least one master module and at least one slave module.
The at least one master module may comprise a data generator configured to generate the bundle data including the timing information, a master interface configured to transmit the bundle data to another module, and a time synchronizer configured to synchronize the function execution time of the at least one master module with a simulation time of the simulation engine unit.
The at least one slave module may comprise a slave interface configured to receive the bundle data from the at least one master module, a data storage configured to store the bundle data, and a controller configured to control the function execution time of the at least one slave module based on the timing information of the bundle data.
The at least one slave module may acquire destination address information included in the bundle data and, if the acquired destination address information includes an address of another module, the at least one slave module may transmit the bundle data to the module corresponding to the address included in the acquired destination address information.
In another aspect, there is provided a module-based multicore simulator for a multicore processor, the module-based simulator including a master module configured to receive a function call from a simulation engine, configured to determine the execution time of each module of the multicore simulator based on simulation time information received from the simulation engine, and configured to generate bundle data comprising timing information, and at least one slave module configured to analyze the bundle data including the timing information generated by the master module and configured to execute an instruction of the at least one slave module at a time specified in the timing information.
The master module may be configured to transmit a pointer of the bundle data to the at least one slave module, and the at least one slave module may be configured to analyze the bundle data including the timing information based on the pointer received from the master module.
The master module may comprise a data generator configured to generate the bundle data including the timing information, a master interface configured to transmit the bundle data to the at least one slave module, and a time synchronizer configured to synchronize the function execution time of the master module with a simulation time of the simulation engine.
Each of the at least one slave modules may comprise a slave interface configured to receive the bundle data from the master module and/or one or more other slave modules, a data storage configured to store the bundle data, and a controller configured to control the function execution time of the slave module based on the timing information of the bundle data.
Other features and aspects may be apparent from the following detailed description, the drawings, and the claims.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a diagram illustrating an example of a simulation apparatus for a multicore system.
FIG. 2 is a diagram illustrating an example of a master module and a slave module.
FIG. 3 is a diagram illustrating an example of bundle data including timing information.
FIG. 4A is a diagram illustrating an example of the occurrence of a bus collision between modules.
FIG. 4B is a diagram illustrating an example of the prevention of a bus collision through the synchronization of the function execution times of modules.
FIG. 5 is a flowchart illustrating an example of a simulation method for a multicore system.
Throughout the drawings and the detailed description, unless otherwise described, the same drawing reference numerals will be understood to refer to the same elements, features, and structures. The relative size and depiction of these elements may be exaggerated for clarity, illustration, and convenience.
DETAILED DESCRIPTION
The following description is provided to assist the reader in gaining a comprehensive understanding of the methods, apparatuses, and/or systems described herein. Accordingly, various changes, modifications, and equivalents of the methods, apparatuses, and/or systems described herein will be suggested to those of ordinary skill in the art. Also, descriptions of well-known functions and constructions may be omitted for increased clarity and conciseness.
FIG. 1 illustrates an example of a simulation apparatus for a multicore system. The simulation apparatus may be included in a device for processing data, for example, a processor, a computer, a mobile terminal, a smart phone, a laptop computer, a personal digital assistant, a tablet, an MP3 player, and the like.
Referring to FIG. 1, simulation apparatus 100 includes an architecture configuration unit 110, a library 130, a trace generation unit 150, and a simulation engine unit 170. The architecture configuration unit 110 may receive data that corresponds to the architecture of a multicore system, and may select one or more components that constitute the architecture of the multicore system from the library 130. The architecture configuration unit 110 may configure a model (hereinafter referred to as the multicore system architecture model) for the architecture of the multicore system by arranging the selected components. For example, the apparatus 100 may be a module-based multicore simulator, and components and communication architectures may be stored in the library 130 as modules. Accordingly, it is possible to easily reconfigure a multicore architecture using the modules.
Various types of components that can be used in the multicore system may be stored in the library 130 in a compiled state. Each component stored in the library 130 may be readily instanced in response to a signal being received from the architecture configuration unit 110. The types of components that can be stored in the library 130 may be set in advance. Information corresponding to each of the components stored in the library 130 may also be stored in the library 130. For example, for an RP core that includes a direct memory access controller (DMAC), a configuration memory, a cache, and an interface, the power consumptions and data processing speeds of the DMAC, the configuration memory, the cache, and the interface may be stored in the library 130.
As described herein, components and communication architectures may be stored in the library 130 as modules. The modules may include a master module that has a master interface, a slave module that has a slave interface, and/or a module that has both the master and slave interfaces. In a module-based multicore simulator, modules may transmit/receive data or control signals to/from one another via their interfaces. The structure of master and slave modules is further described with reference to FIG. 2.
The simulation engine unit 170 may acquire timing information of the execution of functions of a plurality of modules of the multicore system architecture model. The simulation engine unit 170 may control the execution of functions by the modules and may output the results of the control. The simulation engine unit 170 may simulate the multicore system architecture model. In this example, the simulation of the multicore system architecture model may be performed to determine, for example, the power consumption and data processing speed of the multicore system. The simulation engine unit 170 may output the results of the simulation of the multicore system architecture model. For example, the results of the simulation of the multicore system architecture model may include numeric data corresponding to the power consumption and data processing speed of the multicore system.
The trace generation unit 150 may generate a trace corresponding to the execution of functions by the modules of the multicore system architecture model. To determine whether a target routine currently being executed in each of the modules of the multicore system architecture model is operating properly, the trace generation unit 150 may print out an instruction of the target routine, the address of the instruction, and the content of each register at a time immediately after the execution of the instruction each time the instruction is executed. As another example, the trace generation unit 150 may print out the instruction, the address, and the content, in response to a jump instruction or a particular instruction being executed.
FIG. 2 illustrates an example of a master module and a slave module.
Referring to FIG. 2, master module 210 includes a master interface 211, a data generator 213, and a time synchronizer 215. The master interface 211 is an interface for transmitting data and/or control signals to another module. The data and/or control signals may be generated in the master module 210. The master module 210 may communicate with other modules, for example, another master module or a slave module 230 via the master interface 211. An instruction for executing a function via the master interface 211 may be stored in the trace generation unit 150 that is shown in FIG. 1. The master interface 211 may receive a function call signal from a simulation engine and may transmit an operation instruction for a function that corresponds to the received function call signal.
The data generator 213 may generate bundle data. The bundle data may include timing information. For example, the timing information may include request time information corresponding to a transmitter module and response time information corresponding to a receiver module. The bundle data may include signal information such as an address, a read/write, a response, data size, and the like. The bundle data may include timing information such as request time and latency. The timing information included in the bundle data may prevent a bus collision from occurring during the communication between modules and may provide precise simulation results. The structure of the bundle data is further described with reference to FIG. 3.
FIG. 3 illustrates an example of bundle data including timing information.
Referring to FIG. 3, bundle data for the communication between modules may be written in various programming languages, for example, a C++ language. Bundle data including request time information and latency information may be transmitted between a master module ‘unit 64’ and a slave module ‘unit 32.’ Data may also be transmitted between the master module ‘unit 64’ and the slave module ‘unit 32’ via various pointers, for example, pointers ‘address32’ and ‘address64.’ The master module ‘unit 64’ may provide data to the slave module ‘unit 32’ and the slave module ‘unit 32’ may process the data provided by the master module ‘unit 64.’
Conventionally, for the communication between modules, buses or signal protocols are implemented individually through a function call. In various aspects described herein, it is possible to considerably reduce overhead during the communication between modules by using bundle data including timing information.
For example, a module that has generated bundle data may transmit the bundle data to a module that is supposed to process the bundle data only through one or more other modules. In this example, the communication overhead may be reduced by transmitting the pointer of the bundle data to each of the intermediate modules. That is, due to the use of the bundle data in this example, including timing information, there is no need to perform a function call for each of the intermediate functions.
Referring again to FIGS. 1 and 2, the time synchronizer 215 may synchronize the function execution time of the master module 210 with the simulation time of the simulation engine unit 170. The simulation engine unit 170 may provide the master module 210 with simulation time information for each of the modules of the multicore system architecture model. The time synchronizer 215 of the master module 210 may determine the function execution time of each module of the multicore system architecture model by analyzing the simulation time information. The time synchronizer 215 may synchronize the modules of the multicore system architecture model with one another in terms of function execution time, based on the simulation time information. For example, the time synchronizer 215 may be connected to the data generator 213, and may control the data generator 213 to generate bundle data based on the simulation time information.
Referring again to FIG. 2, the slave module 230 includes a slave interface 231, storage 233, a controller 235, and an address decoder 237. The slave interface 231 allows the slave module 230 to exchange data with another module. Data transmitted or received via the slave interface 231 may be stored in the storage 233. The storage 233 may store bundle data that is generated by the master module 210. The controller 235 may analyze the timing information of the bundle data and may control the function execution time of the slave module 230. The address decoder 237 may be connected to the slave interface 231 and may identify a final destination address of the bundle data. For example, if the slave module 230 is not the final destination address of the bundle data, the address decoder 237 may transmit the bundle data to a module that corresponds to the final destination address of the bundle data. As a result, a trace may be generated by the trace generation unit 150 shown in FIG. 1.
The simulation engine unit 170 shown in FIG. 1 may not directly call the slave module 230 that includes the slave interface 231. That is, because of the use of the bundle data including timing information, the simulation engine unit 170 may perform a function call for only the master module 210. This is different from conventional simulation in which a function call needs to be performed for all modules during the simulation of the modules. The slave module 230 may execute an instruction at a request time that is specified in the bundle data provided by the master module 210.
FIG. 4A illustrates an example of the occurrence of a bus collision between modules, and FIG. 4B illustrates an example of the prevention of the occurrence of a bus collision between modules.
Referring to FIG. 4A, during the communication of data between modules 1 and 2, a collision occurs between a bus that processes data for module 1 and a bus that processes data for module 2. To prevent a collision between the buses, the function execution timing of modules 1 and 2 may be adjusted. For example, if a bus collision occurs during the execution of functions by modules 1 and 2 as part of a simulation process, the function execution time of one of modules 1 and 2 may be adjusted. Accordingly, it is possible to prevent the occurrence of a bus collision between modules 1 and 2 by using bundle data including timing information corresponding to the execution of functions by modules 1 and 2.
Referring to FIG. 4B, modules 1 and 2 may exchange timing information that includes request time information and latency information. In this example, the function execution times of modules 1 and 2 may be synchronized with each other based on the request time information. For example, the function execution times of modules 1 and 2 may be synchronized by delaying a function call for module 1 or by advancing a function call for module 2. As a result, it is possible to prevent the occurrence of a bus collision between modules 1 and 2 during a simulation process.
FIG. 5 illustrates an example of a simulation method for a multicore system.
Referring to FIG. 5, a plurality of modules to be synchronized in terms of function execution timing are selected from a library, and a multicore system architecture model is configured using the selected model (500). The plurality of modules may be synchronized based on timing information of bundle data. The bundle data may include request time information of a module transmitting data and latency information of a module receiving the data. The modules that constitute a multicore system may include one or more master modules that have a master interface and one or more slave modules that have a slave interface.
The master modules may generate bundle data including timing information and may transmit the bundle data to other modules via the master interface. During a simulation process, the function execution times of the master modules may be synchronized. The slave modules receive the bundle data from the master modules. The function execution times of the slave modules may be controlled using the timing information of the bundle data. The slave modules may acquire a destination address of the bundle data. If the destination address of the bundle data specifies modules other than the slave modules, the slave modules may transmit the bundle data to the modules specified by the destination address of the bundle data.
Referring again to FIG. 5, the function execution timing information of each of the modules of the multicore system architecture model is acquired, the execution of functions by the modules is controlled based on the acquired function execution timing information, and the results of the control are output (510). A trace information corresponding to function execution information of the modules of the multicore system architecture model may be configured. Accordingly, it is possible to easily identify function execution information of each of the modules of the multicore system architecture model from the trace.
As described herein, it is possible to prevent the occurrence of a data collision during the communication between modules of a multicore system and minimize the overhead of simulation by synchronizing the function execution times of the modules.
Program instructions to perform a method described herein, or one or more operations thereof, may be recorded, stored, or fixed in one or more computer-readable storage media. The program instructions may be implemented by a computer. For example, the computer may cause a processor to execute the program instructions. The media may include, alone or in combination with the program instructions, data files, data structures, and the like. Examples of computer-readable storage media include magnetic media, such as hard disks, floppy disks, and magnetic tape; optical media such as CD ROM disks and DVDs; magneto-optical media, such as optical disks; and hardware devices that are specially configured to store and perform program instructions, such as read-only memory (ROM), random access memory (RAM), flash memory, and the like. Examples of program instructions include machine code, such as produced by a compiler, and files containing higher level code that may be executed by the computer using an interpreter. The program instructions, that is, software, may be distributed over network coupled computer systems so that the software is stored and executed in a distributed fashion. For example, the software and data may be stored by one or more computer readable storage mediums. Also, functional programs, codes, and code segments for accomplishing the example embodiments disclosed herein can be easily construed by programmers skilled in the art to which the embodiments pertain based on and using the flow diagrams and block diagrams of the figures and their corresponding descriptions as provided herein. Also, the described unit to perform an operation or a method may be hardware, software, or some combination of hardware and software. For example, the unit may be a software package running on a computer or the computer on which that software is running.
As a non-exhaustive illustration only, a terminal/device/unit described herein may refer to mobile devices such as a cellular phone, a personal digital assistant (PDA), a digital camera, a portable game console, and an MP3 player, a portable/personal multimedia player (PMP), a handheld e-book, a portable lab-top PC, a global positioning system (GPS) navigation, and devices such as a desktop PC, a high definition television (HDTV), an optical disc player, a setup box, and the like capable of wireless communication or network communication consistent with that disclosed herein.
A computing system or a computer may include a microprocessor that is electrically connected with a bus, a user interface, and a memory controller. It may further include a flash memory device. The flash memory device may store N-bit data via the memory controller. The N-bit data is processed or will be processed by the microprocessor and N may be 1 or an integer greater than 1. Where the computing system or computer is a mobile apparatus, a battery may be additionally provided to supply operation voltage of the computing system or computer. It will be apparent to those of ordinary skill in the art that the computing system or computer may further include an application chipset, a camera image processor (CIS), a mobile Dynamic Random Access Memory (DRAM), and the like. The memory controller and the flash memory device may constitute a solid state drive/disk (SSD) that uses a non-volatile memory to store data.
A number of examples have been described above. Nevertheless, it should be understood that various modifications may be made. For example, suitable results may be achieved if the described techniques are performed in a different order and/or if components in a described system, architecture, device, or circuit are combined in a different manner and/or replaced or supplemented by other components or their equivalents. Accordingly, other implementations are within the scope of the following claims.

Claims (20)

What is claimed is:
1. A simulation apparatus for a multicore system, the simulation apparatus comprising:
a processing device;
an architecture configuration unit configured to select a plurality of modules, to be synchronized in terms of function execution timing, based on timing information included in bundle data, and to configure a multicore system architecture model using the selected modules; and
a simulation engine unit configured to acquire function execution timing information of the modules, synchronize the execution of functions by the modules based on the acquired function execution timing information, and output results of the synchronization of the execution of functions by the modules,
wherein the modules comprise at least one master module which is configured to generate the bundle data and transmit the bundle data to another module.
2. The simulation apparatus of claim 1, further comprising:
a trace generation unit configured to generate a trace corresponding to function execution information of the modules.
3. The simulation apparatus of claim 1, wherein the timing information comprises request time information of a module transmitting data and latency information of a module receiving the data.
4. The simulation apparatus of claim 1, wherein the modules further comprise at least one slave module.
5. The simulation apparatus of claim 4, wherein the at least one slave module comprises:
a slave interface configured to receive the bundle data from the at least one master module;
a data storage configured to store the bundle data; and
a controller configured to control the function execution time of the at least one slave module based on the timing information of the bundle data.
6. The simulation apparatus of claim 5, wherein the at least one slave module further comprises an address decoder configured to decode destination address information that is included in the bundle data.
7. The simulation apparatus of claim 1, wherein the at least one master module comprises:
a data generator configured to generate the bundle data including the timing information;
a master interface configured to transmit the bundle data to another module; and
a time synchronizer configured to synchronize the function execution time of the at least one master module with a simulation time of the simulation engine unit.
8. The simulation apparatus of claim 1, wherein the simulation engine adjusts a time at which a module is scheduled to execute a function based on the acquired function execution timing information.
9. The simulation apparatus of claim 1, wherein the simulation engine adjusts a time at which a module is scheduled to execute a function by delaying a function call for the module or by advancing the function call for the module, based on the acquired function execution timing information.
10. A simulation method for a multicore system, the simulation method comprising:
selecting a plurality of modules to be synchronized in terms of function execution timing based on timing information of bundle data;
generating a multicore system architecture model using the selected modules;
acquiring function execution timing information of the modules;
synchronizing the execution of functions by the modules based on the acquired function execution timing information; and
outputting results of the synchronization of functions by the modules,
wherein the modules comprise at least one master module which is configured to generate the bundle data and transmit the bundle data to another module.
11. The simulation method of claim 10, further comprising:
generating a trace corresponding to function execution information of the modules.
12. The simulation method of claim 10, wherein the timing information comprises request time information of a module transmitting data and latency information of a module receiving the data.
13. The simulation method of claim 10, wherein the modules further comprise at least one slave module.
14. The method of claim 13, wherein the at least one slave module comprises:
a slave interface configured to receive the bundle data from the at least one master module;
a data storage configured to store the bundle data; and
a controller configured to control the function execution time of the at least one slave module based on the timing information of the bundle data.
15. The method of claim 14, wherein the at least one slave module acquires destination address information included in the bundle data and, if the acquired destination address information includes an address of another module, the at least one slave module transmits the bundle data to the module corresponding to the address included in the acquired destination address information.
16. The simulation method of claim 10, wherein the at least one master module comprises:
a data generator configured to generate the bundle data including the timing information;
a master interface configured to transmit the bundle data to another module; and
a time synchronizer configured to synchronize the function execution time of the at least one master module with a simulation time of a simulation engine unit.
17. A module-based multicore simulator for a multicore processor, the module-based simulator comprising:
a processing device;
a master module configured to receive simulation time information and a function call from a simulation engine, configured to the synchronize a function execution time based on the simulation time information, generate bundle data comprising timing information, and transmit the bundle data to another module; and
at least one slave module configured to analyze the bundle data including the timing information generated by the master module and configured to execute an instruction of the at least one slave module at a time specified in the timing information.
18. The module-based multicore simulator of claim 17, wherein the master module is configured to transmit a pointer of the bundle data to the at least one slave module, and the at least one slave module is configured to analyze the bundle data including the timing information based on the pointer received from the master module.
19. The module-based multicore simulator of claim 17, wherein the master module comprises:
a data generator configured to generate the bundle data including the timing information;
a master interface configured to transmit the bundle data to the at least one slave module; and
a time synchronizer configured to synchronize the function execution time of the master module with a simulation time of the simulation engine.
20. The module-based multicore simulator of claim 17, wherein each of the at least one slave modules comprise:
a slave interface configured to receive the bundle data from the master module and/or one or more other slave modules;
a data storage configured to store the bundle data; and
a controller configured to control the function execution time of the slave module based on the timing information of the bundle data.
US13/171,017 2010-12-21 2011-06-28 Simulation apparatus and method for multicore system Expired - Fee Related US8825465B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2010-0131628 2010-12-21
KR1020100131628A KR101704751B1 (en) 2010-12-21 2010-12-21 Apparatus for simulating of multi-core system by using timing information between modules, and method thereof

Publications (2)

Publication Number Publication Date
US20120158394A1 US20120158394A1 (en) 2012-06-21
US8825465B2 true US8825465B2 (en) 2014-09-02

Family

ID=46235528

Family Applications (1)

Application Number Title Priority Date Filing Date
US13/171,017 Expired - Fee Related US8825465B2 (en) 2010-12-21 2011-06-28 Simulation apparatus and method for multicore system

Country Status (2)

Country Link
US (1) US8825465B2 (en)
KR (1) KR101704751B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11042681B1 (en) * 2017-03-24 2021-06-22 Ansys, Inc. Integrated circuit composite test generation

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103853146B (en) * 2012-12-03 2017-06-27 联创汽车电子有限公司 The software load test system and method for engine electronic control unit
GB2512054A (en) 2013-03-18 2014-09-24 Ibm Method to verify correctness of computer system software and hardware components and corresponding test environment
CN105279007B (en) * 2014-07-10 2018-12-25 龙芯中科技术有限公司 The analogy method and device of multi-core processor
CN104656068B (en) * 2015-02-27 2017-05-17 北京润科通用技术有限公司 Information processing method, device and system
US10038744B1 (en) * 2015-06-29 2018-07-31 EMC IP Holding Company LLC Intelligent core assignment

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030063339A (en) 2000-09-15 2003-07-28 콸콤 인코포레이티드 Method and apparatus for high data rate transmission in a wireless communication system
US6718294B1 (en) * 2000-05-16 2004-04-06 Mindspeed Technologies, Inc. System and method for synchronized control of system simulators with multiple processor cores
US20070094409A1 (en) 2005-10-20 2007-04-26 Crockett Douglas M System and method for adaptive media bundling for voice over internet protocol applications
US20070294074A1 (en) * 2005-05-31 2007-12-20 The Mathworks, Inc. Modeling of a multiprocessor system
JP2008109327A (en) 2006-10-25 2008-05-08 Hitachi Communication Technologies Ltd Data transmission method for performing multi-link bundle control, data transmission device, and data transmission system
US7496490B2 (en) * 2005-10-31 2009-02-24 Fujitsu Microelectronics Limited Multi-core-model simulation method, multi-core model simulator, and computer product
KR20090124566A (en) 2008-05-30 2009-12-03 주식회사 카이콤 Data transmission telephone line bundle network system using internet protocol based modem equipments
US20100324880A1 (en) * 2004-02-27 2010-12-23 Gunnar Braun Techniques for Processor/Memory Co-Exploration at Multiple Abstraction Levels
US20110218795A1 (en) * 2010-03-03 2011-09-08 Young-Chul Cho Simulator of multi-core system employing reconfigurable processor cores and method of simulating multi-core system employing reconfigurable processor cores
US20110295587A1 (en) * 2010-06-01 2011-12-01 Eeckhout Lieven Methods and systems for simulating a processor

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100813662B1 (en) * 2006-11-17 2008-03-14 삼성전자주식회사 Profiler for optimizing processor architecture and application

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6718294B1 (en) * 2000-05-16 2004-04-06 Mindspeed Technologies, Inc. System and method for synchronized control of system simulators with multiple processor cores
KR20030063339A (en) 2000-09-15 2003-07-28 콸콤 인코포레이티드 Method and apparatus for high data rate transmission in a wireless communication system
US6747964B1 (en) 2000-09-15 2004-06-08 Qualcomm Incorporated Method and apparatus for high data rate transmission in a wireless communication system
US20100324880A1 (en) * 2004-02-27 2010-12-23 Gunnar Braun Techniques for Processor/Memory Co-Exploration at Multiple Abstraction Levels
US20070294074A1 (en) * 2005-05-31 2007-12-20 The Mathworks, Inc. Modeling of a multiprocessor system
US20070094409A1 (en) 2005-10-20 2007-04-26 Crockett Douglas M System and method for adaptive media bundling for voice over internet protocol applications
KR20080059312A (en) 2005-10-20 2008-06-26 콸콤 인코포레이티드 System and method for adaptive media bundling for voice over internet protocol applications
US7496490B2 (en) * 2005-10-31 2009-02-24 Fujitsu Microelectronics Limited Multi-core-model simulation method, multi-core model simulator, and computer product
JP2008109327A (en) 2006-10-25 2008-05-08 Hitachi Communication Technologies Ltd Data transmission method for performing multi-link bundle control, data transmission device, and data transmission system
KR20090124566A (en) 2008-05-30 2009-12-03 주식회사 카이콤 Data transmission telephone line bundle network system using internet protocol based modem equipments
US20110218795A1 (en) * 2010-03-03 2011-09-08 Young-Chul Cho Simulator of multi-core system employing reconfigurable processor cores and method of simulating multi-core system employing reconfigurable processor cores
US20110295587A1 (en) * 2010-06-01 2011-12-01 Eeckhout Lieven Methods and systems for simulating a processor

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Dohyung Kim et al., "Parallel co-simulation using virtual synchronization with redundant host execution," 2006, Proceedings Design, Automation and Test in Europe 2006, pp. 1151-1156. *
Reinaldo Bergamaschi et. al., "Performance Modeling for Early Analysis of Multi-Core Systems," 2007, 5th IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis, pp. 209-214. *
Roman Plyaskin et al., "High-level timing analysis of concurrent applications on MPSoC platforms using memory-aware trace-driven simulations," Sep. 27, 2010, 18th IEEE/IFIP VLSI System on Chip Conference, pp. 229-234. *
Taewook Oh et al., "Communication Architecture Simulation on the Virtual Synchronization Framework," in Embedded Computer Systems: Architectures, Modeling, and Simulation, editor Stamatis Vassiliadis et al., 2007 Springer-Verlag, pp. 3-12. *
Wei Han et al., "MRPsim: a TLM based simulation tool for MPSocs targeting dynamically reconfigurable processors," 2008, 2008 IEEE International Soc Conference, pp. 41-44. *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11042681B1 (en) * 2017-03-24 2021-06-22 Ansys, Inc. Integrated circuit composite test generation
US20210350059A1 (en) * 2017-03-24 2021-11-11 Ansys, Inc. Integrated Circuit Composite Test Generation
US11836431B2 (en) * 2017-03-24 2023-12-05 Ansys, Inc. Integrated circuit composite test generation

Also Published As

Publication number Publication date
KR20120070188A (en) 2012-06-29
US20120158394A1 (en) 2012-06-21
KR101704751B1 (en) 2017-02-09

Similar Documents

Publication Publication Date Title
US10169513B2 (en) Method and system for designing FPGA based on hardware requirements defined in source code
US8825465B2 (en) Simulation apparatus and method for multicore system
CN110309088B (en) ZYNQ FPGA chip, data processing method thereof and storage medium
US8661440B2 (en) Method and apparatus for performing related tasks on multi-core processor
US8825922B2 (en) Arrangement for processing trace data information, integrated circuits and a method for processing trace data information
CN111651384B (en) Register reading and writing method, chip, subsystem, register set and terminal
US9697119B2 (en) Optimizing configuration memory by sequentially mapping the generated configuration data into fields having different sizes by determining regular encoding is not possible
EP4009186A1 (en) Network-on-chip data processing method and device
US20110072420A1 (en) Apparatus and method for controlling parallel programming
CN114327930A (en) System architecture for communication between heterogeneous multi-core and operation method of system architecture
US10496422B2 (en) Serial device emulator using two memory levels with dynamic and configurable response
TW202107408A (en) Methods and apparatus for wave slot management
EP4170538A1 (en) Chip simulation method, apparatus and system, and device and storage medium
CN102542525A (en) Information processing equipment and information processing method
EP3989038A1 (en) Multi-core synchronization signal generation circuit, chip, and synchronization method and device
CN110362526B (en) SPI slave device, storage and adaptation method and computer storage medium
CN102073604B (en) Method, device and system for controlling read and write of synchronous dynamic memory
US9727528B2 (en) Reconfigurable processor with routing node frequency based on the number of routing nodes
CN105681651A (en) Embedded high speed real time scene image generation device
Kumar B et al. A novel utilization-aware and power-delay-aware intelligent DMA controller for video streaming used in AI applications
CN109376101B (en) System storage control module
CN114415951B (en) Image data access unit, method, acceleration unit and electronic equipment
CN117435532B (en) Copying method, device and storage medium based on video hardware acceleration interface
Kumar A novel utilization-aware and power-delay-aware intelligent DMA controller for video streaming used in AI applications
TW202320526A (en) Power-conscious input/output (i/o) buffer allocation

Legal Events

Date Code Title Description
AS Assignment

Owner name: SAMSUNG ELECTRONICS CO., LTD., KOREA, REPUBLIC OF

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHO, YOUNG CHUL;RYU, SOO JUNG;CHUNG, MOO KYOUNG;AND OTHERS;REEL/FRAME:026516/0059

Effective date: 20110623

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551)

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20220902