问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Structure Simulator Toolkit(SST)之 Link

发布网友 发布时间:2024-09-17 05:17

我来回答

1个回答

热心网友 时间:2024-11-02 19:20

SST中的link,作为组件间信息传递的关键部件,其核心作用与systemc和gem5中的port类似,都是构建仿真系统的基础。link的主要功能包括延迟设置与数据收发,它通过与另一组件的link成员变量link_pair相连接,实现数据的流动处理。在SST中,link包含一个名为send_queue的ActivityQueue *类型数据成员,它作为消息传递的载体,将event传递至通信的另一端,event作为消息数据的基类,提供操作方法handler。在实际实现中,通过持有通信另一方的指针,组件间的数据从一个component传递到另一个component,实现了模块间的数据流动。

在连接两个组件时,通过将组件通信双方的link数据成员相互绑定来实现连接。在SST开始仿真之前,解析配置文件中的连接关系,生成link的联系图,并生成link对象。在prepareLinks过程中,通过LinkPair生成一对相互指向的link,并插入到linkMap中。随后,在component的实例化阶段,通过调用BaseComponent::configureLink,根据指定的link名字在linkmap中查找特定的link,并将其赋值给当前component的对应link成员变量。值得注意的是,在configureLink的参数中还有一个function handler参数,该参数在将赋值给link.deliveru_info,并在link::send_impl中赋值给待发送的消息载体event.delivery_info,实际上,这个delivery_info就是消息传递的核心函数,在event被触发时得到执行。

消息在link上传递是通过系统中每个组件持有的link成员变量实现的,通过调用link的send和recv系列api实现消息的传递。在发送消息时,调用link::send_impl进行发送,send_impl参数为event作为基类,承载消息处理handler。在具体的消息实现中,通常以event为基类派生子类类型,并在子类中添加消息传递的实际数据成员。例如,以example0中的event为例,展示消息如何在link上传递。

在link创建流程方面,首先在python中配置仿真系统组件和参数,通过python中link对象的connect函数连接不同component的link。以example0.py为例,python脚本中的自检基本都是来自于sst包,sst包并非直接定义在python文件中,而是通过c文件实现,并通过api注册到python运行环境中的,具体在pymodel.cc::SSTPythonModelDefinition::initModel()中构建sst对象。link对象创建过程涉及c文件中的实现,如sst-core\src\sst\core\model\python\pymodel_link.cc/.h,其中定义了python Link对象的关键属性和构造方法。在python配置文件中定义link=sst.Link("component_link")时,完成python对象构造后,调用linkInit函数初始化python对象。linkMethod指明了link对象的方法实现,在声明python对象后,通过对象调用connect方法,映射到linkMethod的linkConnect c++函数,执行相关操作。这实现了python对象与c对象的深度融合和共享,使得在python脚本中定义系统架构功能得以实现。

参考文献:
1. Understanding Simulation Infrastructure in SST (wangziqi2013.github.io)
2. Extending Python with C or C++ — Python 3.11.1 documentation
3. Python/C API Reference Manual — Python 3.11.1 documentation
4. Defining Extension Types: Tutorial — Python 3.11.1 documentation
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
发票专用章法律依据 植物大战僵尸2,昨天领签到植物显示的5月植物变成了胡萝卜导弹车,我领了... 植物大战僵尸2星星植物已经获得继续兑换 植物大战僵尸2每天签到领的奖励去哪里找 植物大战僵尸2明明签到已获得大力花菜 ,为什么图谱上没显示? 植物大战僵尸2购买植物提示已经拥有怎么解决? 植物大战僵尸2幸运宝藏开到已经拥有的植物怎么办 生活节奏变快、工作压力加大等,使年轻人很焦虑,你觉得他们该怎么... 中年人如何来减轻心理压力呢 一个男孩子为什么会发他的私密照片给我? 冰箱不制冷还听到有流水声,怎么回事? 冰箱内部有流水声但是不制冷 表名:table 字段:star ASP中如何实现滑动星星评分并保存到数据库中啊... javascript里怎么实现如果回答错误自动关闭该页的功能 有本书叫末世之什么,里面好像有女王两个字,女主被好友林非啥背叛... 求一部漫画,女主在末世废土寻找魔导书 就这七张图,将初中数学知识全部归纳、整理! 如何打开三位数密码的密码箱? 行李密码箱重置密码忘了怎么办 安阳殷墟门票免票政策2022,太行屋脊景区门票 安阳博物院殷墟门票 酒石酸美托洛尔胶囊用法用量 美托洛尔缓释片头部副作用 美托洛尔缓释片的作用 cf灵狐者x有什么属性 cf中哪个女角色除了灵狐者谁最漂亮,曼陀罗还是潘多拉 CF灵狐者,猎狐者,夜玫瑰几种角色那个优势更大 大同450分左右能上什么高中盘点 已经有教师资格证,还可以再考教师资格证吗? 教师资格证毕业了还能考吗 教师资格证毕业之后可以考对吗 sst贴片是什么意思? WOW中的 SST dse 是什么意思? DSE账户是什么意思? 直通车标准推广计划怎么删掉?推广计划有哪些? 殷墟免门票怎么预约,殷墟景区免门票吗 殷墟门票免票政策 殷墟门票免费政策 莫斯水草发黄怎么回事 小三角莫斯发黄怎么发黄,每天早上和中午各一个小时强光(24w飞利浦三基... 依斗门夔州人的“依斗”情结 秋兴八首 其二全文内容是什么 黑锅的txt全集下载地址 语文谓语是什么意思举个例子 怎么换新手机卡,旧手机卡怎么处理。? 旧手机卡换到新手机上,怎么换号码 耳朵听力不行了,什么程度是几级伤残 110级听力评残标准是什么 信用卡还款日当天还算逾期吗? 平面设计师必读书单(基础知识篇1)