CMT模拟器的设计与实现(精)
PCS7中CFC编程之CMT的使用

图1使用控制模块类型进行CFC编程的过程2.1软件环境说明操作系统:Windows 7 Ultimate SP1(64bit)英文版组态应用软件:PCS 7 V8.0 SP2多语言版2.2控制模块类型(CMT)的创建关于控制模块类型的创建,可以分别通过以下3种方式来实现:1、从SIMATIC Manager中创建控制模块类型;2、从CFC编辑器中创建控制模块类型;3、从过程标签类型移植。
2.2.1从SIMATIC Manager中创建控制模块类型具体过程如下:1、在项目中打开主数据库;2、使用菜单命令“视图”→“工厂视图”(View→Plant View)切换到工厂视图,控制模块类型要在工厂视图的层级下完成创建;3、右键单击文件夹选项选择菜单命令“插入新对象”→“控制模块类型”(Insert New object →Control Module Type),完成控制模块类型的创建。
图2从SIMATIC Manager中创建控制模块类型2.2.2从CFC编辑器中创建控制模块类型从CFC编辑器中创建控制模块类型的具体操作过程如下:1、在库的工厂视图中,右键单击以选择菜单“插入新对象→CFC”(Insert new object→CFC);2、使用CFC编辑器打开新建的CFC对象;3、在菜单中选择“视图→工艺I/O”(View →Technological I/Os),将在CFC编辑器中打开一个新的窗口;此外,如果直接在CFC编辑器的工具栏上点击“工艺I/O”(Technological I/Os)按钮也可以完成同样的操作效果;4、通过鼠标右键单击空白窗口打开快捷菜单,在此快捷菜单中选择“插入新对象→控制模块”(Insert new object → Control module),此时,即完成从CFC编辑器中创建控制模块类型的操作。
图3在CFC编辑器中打开工艺I/O窗口图4插入控制模块完成控制模块类型的创建2.2.3从过程标签类型移植如果要从过程标签类型移植完成控制模块类型的创建,请参考以下操作步骤:1、在主数据库中要存在所期望的过程标签类型(可以自己创建或者从PCS 7库中拷贝过程标签类型到主数据库的层级文件夹下);2、在主数据库的工厂视图,右键单击层级文件夹,在选择菜单中选择“控制模块→通过过程标签类型创建控制模块类型...”(Plant Types→Create Control Module Type From Process Tag Type...);3、在新弹出的选择窗口中勾选要创建控制模块类型的过程标签类型模版,点击“创建…”(Create…)按钮,创建控制模块类型;4、创建结束,会在之前的过程标签类型同一文件目录下生成新的控制模块类型。
飞控计算机数据模拟器的设计与实现

飞控计算机数据模拟器的设计与实现作者:李文华罗霄张乐来源:《现代电子技术》2014年第11期摘要:为了更好的检查飞控采集器的动态采集能力,设计并实现了一种便携式飞控计算机数据模拟器,具有体积小、重量轻、可靠性高、不需要外接电源等优点。
首先说明了该模拟器的实现方案和系统组成,然后详细阐述了各个组成模块的工作原理,该模拟器已应用在实际的数据调试、检查以及故障排除工作中,能够提高工作效率,并且稳定性好。
关键字:飞控计算机;模拟器; MCU控制器; 1553编码器中图分类号: TN914⁃34 文献标识码: A 文章编号: 1004⁃373X(2014)11⁃0104⁃03Abstract:In order to check the dynamic acquisition ability of flight⁃control collector, a portable data simulator for flight⁃control computer was designed. It has the advantages of small volvme, light weight and high reliability, and does not need any external power supply. The implementation scheme and system composition of the simulator are illustrated. The working principle of each module is expounded in detail. The simulator has been applied to the actual data debugging, check and troubleshooting. It has improved the work efficiency, and has high stability.Keywords: flight⁃control computer; simulator; MCU Controller; 1553 coder0 引言飞控计算机数据模拟器具有体积小、功能全、涉及的知识面广、应用范围宽的特点。
cmt2110单片机例程

cmt2110单片机例程
CMT2110 并不是一个我熟悉的单片机型号,可能是因为它是一个特定厂商或特定应用中使用的型号,或者可能是一个不太常见的型号。
因此,我无法直接为你提供一个关于CMT2110 单片机的例程。
然而,如果你有一个单片机编程的基础,并且想为CMT2110 编写例程,你可以遵循以下的一般步骤:
了解硬件规格和特性:首先,你需要获取CMT2110 的硬件规格和特性,这通常可以在单片机的数据手册或参考手册中找到。
了解单片机的I/O端口、时钟频率、内存大小、支持的指令集等。
安装开发环境:根据你的单片机的编程语言和开发工具链,你需要安装一个合适的开发环境。
这可能包括编译器、调试器、模拟器等。
编写代码:使用你选择的编程语言(如C、C++或汇编语言)编写代码。
你需要初始化单片机的各个部分,设置I/O端口,实现所需的功能等。
编译和链接:使用你的开发环境中的编译器和链接器,将你的代码编译和链接成一个可执行文件。
下载和调试:使用适当的工具将可执行文件下载到你的单片机上,并进行调试。
你
可能需要使用调试器来查看单片机的状态,检查代码的执行情况,解决错误等。
CMOS模拟集成电路设计_ch9运算放大器

1、概述 2、一级运放 3、两级运放 4、增益的提高 5、共模反馈 6、输入范围限制 7、转换速率 8、电源抑制 9、运放的噪声
提纲
提纲
2020/11/14
2
1、概述
“运算放大器(运放)”“OP AMP”
高增益的差动放大器
理想运放的基本特点
一级运放202ຫໍສະໝຸດ /11/146套筒式共源共栅运放(telescopic cascode op amp) 输入输出很难短接 为保证M2和M4饱和
VMAX VMIN VTH 2 (VGS4 VTH 4 )
2020/11/14
一级运放
7
▪ 设计实例 设计全差动套筒式运放,该运放的性能指标为:VDD=3V,差动输
▪ 转换速率(slew rate)
dV (t)
DV
Sr
dt
max Dt max
output
VO
DV Dt
概述
▪ 稳定时间(settl2i02n0/g11/1t4ime)ttds ts
t
VO+ 0.1% VO VO- 0.1% VO
t
4
2、一级运放
基本电路结构
Vin
Vout
Amplifying stageOutput stage
Iss1
共模反馈
2020/11/14
22
控制共模电平(续) 当采用深线性区的MOS管的共模检测时,
令
Rtot
Ron7
|| Ron8
nCox
W L
1 (Vout 2 Vout1
2VTH
)
得到
其中
缺点: ▪Vout,CM是器件参数的函数 ▪Ron7|| Ron8上的压降VP限制输出摆幅 ▪欲↓ 2020/11/14 VP→↑M7和M8 →C↑ 共模反馈
现代数字通信 论文 CMT性能仿真

现代数字通信实验报告CMT性能仿真摘要:本文主要介绍了一种多载波无线通信中的调制方式CMT,CMT基于余弦调制滤波器组CMFB。
在CMT中,子载波采用脉冲振幅调制(PAM)。
文中首先会介绍CMT的原理、系统结构以及滤波器设计方法,然后列出CMT在不同类型信道下的传输性能仿真,最后与其他多载波调制方法进行了比较并给出结果。
关键字:CMFB CMT PAM 多载波调制一、引言近年来,多速率滤波器组技术在语音编码、图像变换通信信号处理、雷达等方面得到了广泛应用。
余弦调制滤波器组(CMFB)是一种特殊的多速率滤波器组。
基于CMFB的多载波调制相对于传统的多载波调制来说,是一种频谱利用率更高,抗干扰(尤其是窄带干扰)性能更强的调制方法。
滤波器组多载波(CMFB)比OFDM 有更多的优点。
CMFB具有盲检测能力,且与基于OFDM系统相比,CMFB具有以下的特点:➢设计过程简单,只需优化设计原型低通滤波器;➢分析器和综合器等长,系数都是实数,且子带信号都是实信号;➢在实现余弦调制滤波器组时,与DFT(离散傅立叶变换)滤波器组类似,可以利用DCT(离散余弦)变换来实现;➢缺点是原型低通滤波器具有线性相位,但分析滤波器和综合滤波器不具有线性相位。
二、CMT系统原理及设计2.1 系统结构及原理基于CMT制解调系统的原理框架如下图1所示:图1基于CMT 制解调系统的原理框架图基于CMT 调制解调系统的原理是,输入数据流首先经过一个串/并转换器和PAM 编码器,然后通过CMT 调制器,调制后的输出信号进入信道,此信道可以是AWGN 信道、带限信道以及瑞利衰落信道,在接收端调制信号通过CMT 解调器,解调后的信号再通过抽样判决和并/串转换,恢复原始信号码流。
2.2 脉冲成形滤波器的设计在数字通信中,基带信号的频谱范围很宽,为了有效地利用信道,在信号传输出去之前,都要对信号频谱压缩,使其在消除ISI 和达到最佳检测的前提下,大大提高频带的利用率,利用脉冲成形滤波器对信号进行滤波,就能有效地达到这一功能。
C-CMTS 系统测试用例

C-CMTS系统测试用例鼎点视讯研发十一部目录第1章测试概况 (1)1.1 测试环境及仪器 (1)1.2 测试地点 (2)1.2.1 测试拓扑图 (2)1.2.2 IP地址分配情况 (4)1.3 测试人员 (4)1.4 预置条件 (4)第2章物理层测试 (5)2.1 物理层参数设置 (5)2.1.1 改变上行通道中心频率 (5)2.1.2 改变上行通道带宽 (6)2.1.3 改变上行通道调制参数 (8)2.1.4 改变下行通道中心频率 (9)2.1.5 改变下行通道调制方式 (11)2.1.6 改变下行通道发送电平 (12)2.1.7 测量下行通道射频质量 (13)2.1.8 上行通道噪声抑制测试 (14)2.2 物理层性能测试 (15)2.2.1 C-DOCSIS局端输出电平 (15)2.2.2 C-DOCSIS系统射频工作频带 (16)2.2.3 C-DOCSIS系统带外杂散电平(局端) (18)2.2.4 插入损耗-(内置混频器局端) (19)2.2.5 反射损耗-(内置混频器局端) (20)2.2.6 接入C-DOCSIS系统对电视通道C/N,MER的影响 (21)第3章第三章链路层测试 (22)3.1 C-DOCSIS系统链路损耗动态范围 (22)3.2 单频干扰测试1――头端加入噪声的上行速率测试 (23)3.3 单频干扰测试2――头端加入噪声的下行速率测试 (24)3.4 单频干扰测试3――终端加入噪声的上、下行速率测试 (25)3.5 网络衰减离散性对信号传输速率的影响 (26)3.6 1对2链路传输性能测试-(DOCSIS 3.0)吞吐量测试 (27)3.7 1对2链路传输性能测试-(DOCSIS 3.0)时延、丢包率测试 (28)3.8 1对100链路传输性能测试-(DOCSIS 2.0)吞吐量测试 (29)3.9 1对100链路传输性能测试-(DOCSIS2.0)时延、丢包率测试 (31)3.10 1对100链路上下行对发吞吐量测试(DOCSIS 2.0) (32)3.11 1对100加入本底噪声对吞吐量的影响(DOCSIS 2.0) (33)3.12 1对100不同交织深度对吞吐量的影响(DOCSIS 2.0) (34)3.13 1对100链路上下行对发24小时丢包率测试(DOCSIS 2.0) (36)3.14 DOCSIS 2.0+DOCSIS 3.0混合上下行吞吐率测试 (37)第4章配置及业务测试 (38)4.1 服务流及QoS测试 (38)4.1.1 CM注册多个上下行服务流 (38)4.1.2 CM上行限速 (39)4.1.3 CM下行限速 (40)4.1.4 VOIP功能测试 (42)4.1.5 系统对PacketCable 2.0动态QoS的支持 (43)4.1.6 VOD业务信令优先传输及最小带宽保障 (44)4.2 分类器功能的验证 (45)4.2.1 IP Protocol及TCP/UDP端口分类规则 (45)IP Protocol及TCP/UDP端口分类规则 (45)4.2.2 IP分类规则 (48)4.2.3 Tos Range&mask分类规则 (51)4.2.4 Mac地址分类规则 (53)4.2.5 VLAN分类规则 (55)4.3 DHCP特性 (56)4.3.1 支持DHCP Relay特性(option82) (56)4.3.2 支持DHCP Relay特性(option60) (57)4.3.2 (58)4.3.3 DHCP用户私自设置IP地址限制 (59)4.4 支持DOCSIS3.0上下行通道绑定,支持2.0/3.0CM混合组网 (61)4.5 组播业务支持测试 (63)4.6 对大客户静态IP设置的支持 (65)4.7 限制最大CPE数量 (66)4.8 CM溯源测试 (67)第5章动态负载均衡及其他功能 (68)5.1 根据上行通道CM数量,做上行数据负载均衡 (68)5.2 根据下行通道CM数量,做下行数据负载均衡 (69)5.3 根据上行通道带宽利用率,做上行数据负载均衡 (70)5.4 根据下行通道带宽利用率,做下行数据负载均衡 (72)5.5 下行信道指定(Channel Assignment)配置 (73)5.6 上行通道指定配置 (75)第6章设备安全方面 (77)6.1 广播风暴抑制 (77)6.2 SNMP访问控制及必需的MIB OID取值测试 (79)第1章测试概况本次测试对象为C-CMTS,测试主要分三部分,第一部分测试设备的物理特性,包括下行的射频质量,调制方式,调试方式,噪声检测等;第二部分主要测试设备的协议及应用支持,包括VOIP, DOCSIS协议等;第三部分主要测试设备提供的负载均衡功能和厂家提供的一些特性。
CMG建模步骤

创建新项目:输入项目名称1、打开软件平台CMG Launcher2、点击Projects菜单3、在下拉菜单中选择Add Projec t4、在弹出窗口中输入项目名称5、点击OK按钮前处理程序1、在软件平台上双击Builder图标,打开前处理程序2、在弹出窗口中选择Create a new datase t→OK3、在弹出窗口中选择IMEX按钮→OK4、在弹出窗口中输入文件名(注意:该操作自动在项目目录下建立新目录,目录名称与文件名称相同,以后生成的数据文件在该目录下)5、点击Create按钮,在弹出窗口中选择单位制6、点击OK按钮弹出下面窗口—建模软件平台输入/输出控制1、点击Input/Output Contral 按钮弹出输入/输出控制窗口2、选择Output File s→Case ID T18 填写Title T18 Simulation Model3、点击Simulation Output &Control→Simulation Output Options4、Output Print File s→Select弹出网格变量选择窗口,根据需求选择输出网格变量(该变量输出到*.out文件中)→OK5、Simulation Results File s→Select弹出网格变量选择窗口,根据需求选择输出网格变量(该变量输出到*.mrf文件中)→OK6、选择OK 完成输入输出控制选择7、选择Fil e→View Sections→Input/Output Contral察看输入输出部分数据文件油藏描述输入模拟开始时间1、单击Reservoir Description→OK→OK 弹出油藏描述窗口2、Grid→Calendar输入模拟开始时间→OK建立网格系统1、单击Create Grid using GridBuilder…按钮弹出GridBuildr窗口2、File→Open Map File →OK3、Grid→Coner Point→Non-Orthogonal Grid4、next→输入网格顶边界→Next Line输入网格右边界→Next Line输入网格下边界→Next Line输入网格左边界→Next→Nex t→输入X轴网格数50→Next Section输入Y轴网格数40→Next输入纵向划分网格数5→Next→Finish输入储层参数1、点击Specify Property按钮在弹出窗口中输入油藏参数,如:G rid Top→Use Regions/Sectors→Layer 1-Whole layer→Add to region list→Set/Edit…→Contour maps→Values in file1→在弹出窗口中选择等值图文件类型和名称→OK→OK→OK2、依次输入砂厚、净厚、渗透率、孔隙度等油藏参数→OK3、点击Calculate Property按钮,在弹出窗口中选中参数参与插值。
用Arduino制作MWC小四轴参考教程

用Arduino制作MWC小四轴参考教程MWC(MultiWiiCopter)是一种开源的四轴飞行器控制系统,使用Arduino作为主要控制器,被广泛应用于小型四轴飞行器的制作。
下面是制作MWC小四轴的参考教程,共1200字以上。
首先,准备所需材料:1. Arduino Pro Mini开发板2.MPU6050陀螺仪和加速度计模块3.HC-05蓝牙模块4.4个无刷电机和电调5.4个螺旋桨6.电池、导线和焊锡工具7.透明塑料板或碳纤维板(用于机架)接下来,按照以下步骤进行制作:1.组装机架:使用透明塑料板或碳纤维板制作四轴机架,确保机架稳固且轻量。
2.连接电调和无刷电机:将电调连接到Arduino的PWM引脚上,然后将无刷电机连接到电调上。
确保所有电调和电机的接线正确,并根据需要焊接连接线。
3.连接加速度计和陀螺仪模块:将MPU6050陀螺仪和加速度计模块连接到Arduino的I2C接口上。
确保连接线正确并牢固。
可以使用焊接或插针连接。
4.连接蓝牙模块:将HC-05蓝牙模块连接到Arduino的串口接口上。
确保连接线正确并牢固。
可以使用焊接或插针连接。
5.编写控制程序:在Arduino IDE中编写控制程序。
该程序将读取加速度计和陀螺仪数据,然后计算四轴飞行器的姿态和稳定性。
还可以添加蓝牙通信功能,使手机或电脑可以通过蓝牙控制飞行器。
6.上传控制程序:使用Arduino IDE将编写好的控制程序上传到Arduino Pro Mini开发板上。
确保选择正确的开发板类型和端口,并点击“上传”按钮。
7.舵机校准:在完成上传后,需要校准四轴飞行器的舵机。
可以使用Arduino的Servo库进行舵机校准。
8.完成组装:将上面准备好的电调和无刷电机固定到机架上,确保四轴飞行器平衡且稳固。
连接电池,并将飞行器放在平坦的地面上。
9.测试飞行:打开手机或电脑上的蓝牙控制软件,并连接到飞行器上的HC-05蓝牙模块。
通过控制软件来操控飞行器,测试姿态和稳定性的调整是否正确。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
—251—2007年10月October 2007计 算 机 工 程Computer Engineering 第33 第19期Vol 卷.33 No.19 ·开发研究与设计技术·文章编号:1000—3428(2007)19—0251—02文献标识码:A中图分类号:TN47CMT 模拟器的设计与实现杨 华,崔 刚,吴智博,刘宏伟(哈尔滨工业大学计算机科学与技术学院,哈尔滨 150001)摘 要:片上多线程(CMT)是未来高性能处理器的发展方向,而软件模拟是处理器体系结构研究和设计中不可或缺的技术手段。
该文基于SimpleScalar 工具集设计并实现了CMT 节拍级模拟器——OpenSimCMT ,对CMT 体系结构的设计和评测提供支持。
OpenSimCMT 特点如下:(1)支持同时多线程(SMT)和片上多处理器(CMP)的模拟;(2)架构开放,配置灵活,可根据具体研究目标随时进行扩展,添加新的模拟内容及相关统计;(3)功能全面,对线程间资源竞争与共享、各功能单元、流水段、分支预测、多级cache 等全方位模拟,模拟结果准确。
关键词:片上多线程;模拟;微处理器;高性能Design and Implementation of CMT SimulatorYANG Hua, CUI Gang, WU Zhibo, LIU Hong-wei(School of Computer Science and Technology, Harbin Institute of Technology, Harbin 150001)【Abstract 】Chip multithreading (CMT) represents the direction for future high-performance processors, and simulation is an integral part of the processor architecture research and design process. This paper presents the design and implementation of a SimpleScalar-based cycle-level simulator —OpenSimCMT, which serves for designing and evaluating the CMT architectures. OpenSimCMT features that: (1) supporting the simulation of simultaneous multithreading (SMT) as well as chip multiprocessors (CMP); (2) open framework and well configurable, being extendible to accommodate a given research goal, and readily to append new simulation contents and relative statistic; (3) all-around simulation, supporting inter-thread resource sharing and competition, various function units, pipeline, branch prediction, multi-level caches, etc, facilitating accurate simulation.【Key words 】CMT; simulation; microprocessor; high-performance1 概述伴随晶体管集成密度的日益提高,处理器的发展将逐渐进入片上多线程(CMT)时代[1]。
CMT 通过开发线程级并行(TLP)来克服指令级并行(ILP)的不足,显著提高了处理器的整体处理能力。
同时多线程(SMT)[2]和片上多处理器(CMP)[3]是两类典型的CMT 体系结构,自提出以来就受到广泛的研究和关注。
SMT 在宽发射超标量(superscalar)的基础上增加多个硬件线程上下文(hardware context)控制,使多线程同时“驻留”于处理器中,不同线程的指令可同时发射,竞争并共享处理器内部的各种资源,有效地提高了资源利用率和整体性能。
CMP 将多个相同的处理核集成在同一芯片中,共享大容量L2(或更低)cache ,每个核可看作一个独立的处理器,分别运行不同的程序/线程。
CMP 旨在简化处理器设计,将整个片上资源静态划分给多个独立的核,其缺点是各自的资源无法交叉利用,当TLP 不足时会严重浪费资源。
相比之下,SMT 中大部分资源是“竞争式共享”,在TLP 和ILP 间动态转换,提高资源的整体利用率,但也增加了设计和实现的复杂度。
处理器的设计、实现和验证过程日益复杂。
软件模拟已成为处理器的先期设计、验证和评估的关键一环,也是对新体系结构思想进行验证和量化评价的重要手段。
模拟不但节省成本,而且非常灵活,帮助探索未知的设计空间,对不同的设计思路和配置选项进行效果评测。
由于性能、功耗、造价、可靠性、兼容性、可扩展性等方面的限制和要求,高效实用的处理器体系结构通常来自对各种设计选项的权衡和取舍(trade-off),这需要大量的先期模拟实验,是一个反复比较、逐渐求精的过程。
如果没有模拟器的支持,评测工作要等到电路级设计(Verilog 验证、FPGA 仿真等)、甚至是实际芯片出来后才能进行,这是不切实际的。
依赖于模拟器的详细程度和设计水平,模拟结果与实际会有不同程度的偏差,但这并不妨碍模拟器作为体系结构研究的重要技术手段、对各种设计选项进行相对客观的评测和比较。
本文介绍了在CMT 研究过程所设计并实现的节拍级模拟器——OpenSimCMT 。
2 相关工作SimpleScalar [4]是由Austin 设计的超标量处理器模拟工具集,包含指令行为验证(sim-safe)、分类统计(sim-profile)、分支行为(sim-brped)、cache 行为(sim-cache)、整体性能模拟(sim-outorder)等不同侧重点和详细程度的模拟;还包括与之配合的交叉编译工具,用于将高级语言程序(C 和Fortran)编译链接成Pisa 指令(类似MIPS ,用于研究目的)的可执行程序。
由于SimpleScalar 的功能比较全面、开放源码、可移植性好(C 语言开发)等方面的优点,一直以来被学术界广泛地扩展和移植,作为新体系结构思想的验证和评测工具。
目前为止,SimpleScalar 已发展到 4.0版(MASE),而最广泛采用的仍是3.0版。
除Pisa 外,还出现了支持Alpha 、ARM 、PowerPC 、IA-32等指令集的版本,并且被成功移植到多种UNIX 、Linux 和基金项目:国家自然科学基金资助项目( 60503015)作者简介:杨 华(1974-),男,博士研究生,主研方向:片上多线程体系结构,容错处理器体系结构;崔 刚,教授、博士生导师;吴智博,博士、教授;刘宏伟,博士、副教授 收稿日期:2006-10-18 E-mail :yangh@Windows平台上运行。
SMTSIM[2]由Tullsen等设计,是最早的SMT性能模拟器。
虽然对SMT的支持比较完备,但存在如下一些不足之处:支持范围小(只支持Alpha指令集);统计项较少、且可配置性较差(参数较少,经常要修改源代码来进行配置),给大规模实验造成不便;运行平台少(最初只支持Alpha + Unix,最近才被移植到X86 + Linux上),制约了其适用范围。
3 OpenSimCMT的设计与实现CMT是新兴的、也是最复杂的处理器体系结构之一,影响因素很多。
其研究过程需要大量的实验评测,迫切需要一个准确、信息量大、运行速度快、配置方便、扩展灵活的模拟器。
为此,对Simplescalar 3.0进行扩展,设计并实现了OpenSimCMT。
3.1 设计要点OpenSimCMT的设计目标是准确、实用的基础实验平台,为各种CMT设计思路提供验证和评测支持。
图1给出了OpenSimCMT的基本结构——CMT控制逻辑作用于8级流水线,并加强主存、各级cache、各功能单元、寄存器文件等重要资源的管理。
其设计要点在于:(1)清晰、开放的架构:根据不同的研究目的,需要随时加入对新设计选项的支持,保持整个模拟器架构的清晰和开放至关重要。
除了继承SimpleScalar本身的开放性,OpenSimCMT对新增的结构和函数采用功能明确,结构简单的模块化设计。
对原SimpleScalar中容易含混的地方重新设计,并将过于复杂的任务模块拆分成多个函数完成。
例如:原SimpleScalar中的寄存器重命名过程比较隐晦(宏实现,对物理寄存器数量无明确限制),而OpenSimCMT明确添加了用于寄存器重命名过程的数据结构、函数和相关统计。
(2)可配置性良好:模拟过程往往涉及大量选项有或无、多或少、粗调和微调等配置细节,方便灵活的配置选项是实现高效率模拟工作的关键。
除了继承SimpleScalar良好的可配置性,OpenSimCMT中添加CMT的相关配置选项,可通过命令行或配置文件的形式传递实验配置,无需修改源代码,这与SMTSIM相比有很大优势。
(3)评测信息全面:模拟实验是为了提供直观而全面的评测信息,其准确和全面与否直接影响研究人员的判断和取舍。
OpenSimCMT增加了大量的相关统计项,全面反映CMT各线程的运行、对各类资源的占用和竞争情况。
图1 OpenSimCMT的基本结构3.2 实现过程鉴于CMT及其模拟实现的复杂性,在OpenSimCMT实现过程中采用稳扎稳打、步步为营的策略。
每个步骤完成之后都要经历大量的测试,确保其准确和高效,为进一步开发打下基础。
大致的实现过程如下:(1)将原SimpleScalar的RUU(register update unit)结构解耦合为ROB(reorder buffer)和RS(reservation station)两部分,配置和使用更加灵活,符合大多数处理器的结构习惯。
明确了寄存器文件的结构和实现,使寄存器分配过程更清晰可控。
增加了指令等待队列(IQ)结构及相关控制。
(2)复制线程上下文,初步支持多线程的同时运行。
将SimpleScalar中涉及线程上下文的数据结构进行数组化处理,并扩展装载函数(loader),支持多线程的同时装载。