" SchedulerU中的selection_logic解析1" 在SchedulerU这个模拟处理器架构中,`selection_logic` 是一个关键的类,它负责处理指令选择逻辑,这是处理器性能和能效的关键部分。`selection_logic` 类的目的是计算在发射阶段从指令窗口中选择就绪指令时的功率消耗。在顺序执行和乱序执行的处理器中,选择逻辑有所不同,因此在SchedulerU中有两个不同的实现,但它们不会同时使用。 对于顺序执行(即有序)的单发射多线程处理器,发射宽度等于1乘以线程数。这是因为顺序执行模式下,处理器必须按照指令的顺序进行,每条线程每次只能发射一条指令。在这种情况下,选择逻辑确保了每个线程都能公平地获取执行机会,且不会出现乱序执行的情况。 而在乱序执行(即Out-of-Order,OOO)的处理器中,发射宽度是固定的,不依赖于线程数。这意味着乱序执行单元可以处理不同线程的指令并行,不需按照线程顺序,每次可以发射的指令数量是预设的发射宽度。这种设计允许处理器通过重新排序和优化指令流来提高性能。 `selection_logic` 类的构造函数接收几个关键参数: 1. `is_default`:这个参数在代码中未使用,可能是预留的将来可能用到的标志。 2. `win_entries`:指令窗口的表项数,表示指令窗口可以存储多少条指令。 3. `issue_width`:发射宽度,表示处理器每次可以发射的指令数量。 4. `l_ip`:一个指向`InputParameter`对象的指针,用于传递到CACTI(Cache Analysis and Characterization Tool for Integrated Circuits)进行电路级别的计算。 5. `device_ty`:设备类型,通常设置为`Core_device`,表示核心设备。 6. `core_ty`:核心类型,可以是`Inorder`(顺序执行)或`OOO`(乱序执行)。 `selection_logic` 类还包含一个名为`local_result`的`uca_org_t`类型的成员变量,这通常用于存储CACTI的计算结果。另外,还有一个未使用的`is_default`布尔变量和一个未初始化的`ParseXML`指针,这些可能是设计时的遗留或者为了扩展性预留的。 `selection_power()`函数是一个内部方法,它涉及到具体的电路级别的功率计算,这部分细节在此不作详细介绍,因为它涉及到硬件设计的底层细节。 `selection_logic` 在SchedulerU中扮演着决定如何从指令窗口中选择指令以进行发射的角色,这一过程受到处理器类型(顺序或乱序)、发射宽度、线程数等因素的影响,对处理器性能和能效有着直接影响。
![](https://csdnimg.cn/release/download_crawler_static/86347474/bg1.jpg)
下载后可阅读完整内容,剩余3页未读,立即下载
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/6c55a06f81c3424eb5e24aee8483d18b_weixin_35775446.jpg!1)
- 粉丝: 30
- 资源: 336
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 解决Eclipse配置与导入Java工程常见问题
- 真空发生器:工作原理与抽吸性能分析
- 爱立信RBS6201开站流程详解
- 电脑开机声音解析:故障诊断指南
- JAVA实现贪吃蛇游戏
- 模糊神经网络实现与自学习能力探索
- PID型模糊神经网络控制器设计与学习算法
- 模糊神经网络在自适应PID控制器中的应用
- C++实现的学生成绩管理系统设计
- 802.1D STP 实现与优化:二层交换机中的生成树协议
- 解决Windows无法完成SD卡格式化的九种方法
- 软件测试方法:Beta与Alpha测试详解
- 软件测试周期详解:从需求分析到维护测试
- CMMI模型详解:软件企业能力提升的关键
- 移动Web开发框架选择:jQueryMobile、jQTouch、SenchaTouch对比
- Java程序设计试题与复习指南
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)