通过 RTX64 控制面板中的 Changing Internal System Behavior(更改内部系统行为),可以配置 RTSS 子系统的多种行为特征。详细说明如下:
注意:对 RTX64 控制面板中的某些配置做出更改后,需要重新启动 RTSS 子系统。如果子系统需要重新启动,您将在页面底部看到一个警告图标。
在 RTX64 控制面板中打开此页面
在 RTX64 控制面板中打开此页面:
- 在 Windows 开始菜单中,导航至 RTX64 4.x Runtime,单击 RTX64 Control Panel;
- 单击 Configure the RTSS Subsystem -> Change internal system behavior
更改子系统启动类型
注意:此设置需要 Windows 管理员权限。
更改子系统启动类型:
选择一种启动类型:
- Manual(手动)- RTX64 子系统只有在用户手动启动或依赖进程(可以是 RTSS 应用程序,也可以是链接到 RTX64 的 Windows 应用程序)运行后才会启动;
- Automatic(自动)- RTX64 子系统在 Windows 系统服务(SERVICE_SYSTEM_START) 启动期间时启动;
注意:当 RTX64 子系统设置为 自动启动 时,必须禁用 快速启动。在安装 RTX64 Runtime 时,会自动禁用 快速启动,因此可能不需要抓门操作。但是,如果在安装 RTX64 Runtime 后,手动启用了 快速启动,则需要禁用它。请按照以下步骤操作:
- 打开 Windows 控制面板;
- 单击 电源选项;
- 选择 更改电源按钮的功能;
- 在该页面中选择 更改当前不可用的设置;
- 在 关机设置 下,取消选中 启用快速启动;
- 保存更改。
更改 HAL 定时器周期
RTX64 HAL 定时器是 RTX64 子系统用于内部同步,定时器和等待功能的主要定时器。RTX64 HAL 定时器与系统硬件和处理器有关。如果 RTX 64 对处理器的访问不受任何阻碍(即没有 SMI/SMM 活动)时,其性能是确定的。
RTX64 子系统 HAL 定时器周期的默认值为 100 微秒。该值可以小至 10 微秒,也可以大至 1,000 微秒。
定时器周期值会影响子系统和应用程序的响应。应用程序的定时器的周期只能设定为与子系统 HAL 一致,或为其整数倍。比如,如果 HAL 定时器周期为 50,您可以创建的定时器周期可以是 50,100,200,但不能是 130,如果设置为 130,将向上舍入为 150。更多信息,请参阅 Application Timer Expiration Behavior(应用程序定时器到期行为) 。
注意:将 HAL 定时器周期设置为低于 20 微秒时要小心。如果 HAL 定时器周期设置得太短,可能会对性能产生负面影响或导致系统挂起。在应用部署之前,需要全面测试应用程序设置的定时器周期,验证硬件是否可以完成编译。
更改 HAL 定时器周期:
- 从 HAL timer period (microseconds)(HAL 定时器周期(微秒))下拉菜单中选择一个周期值。可用值为:
- 1000,500,200,100(默认),50,20,10,5,2,1
- 如果需要自定义 HAL 定时器周期,且未在下拉菜单中列出,则可以手动输入;
- 重新启动 RTX64 使更改生效。
更改子系统线程时间量(Quantum)的默认值
RTX64 被配置来运行最高优先级的线程,直到运行完成或让出。在一个给定的优先级内没有循环。要更改此行为并让 RTX64 在给定优先级内提供时间片,需要为所有 RTSS 线程设置默认时间量。
注意:如果线程时间量的值小于 HAL 定时器周期,RTX64 会将间隔设置为与 HAL 定时器周期相同的值。如果线程时间量间隔大于 HAL 定时器周期,RTX64 将对 HAL 计时器周期取模。线程时间量间隔必须是 HAL 定时器周期的倍数。
更改子系统线程时间量的默认值:
- 在 Time quantum (microseconds)(时间量(微秒))框中输入正整数值。0(默认值)值表示直至线程完成;
- 重新启动 RTX64 使更改生效。
注意:RTSS 应用程序可以使用 RTAPI 函数设置时间量。
TerminateThread 函数被调用时子系统的行为
TerminateThread 函数会使 RTSS 线程退出。您可以将 RTX64 配置为在线程终止时,不释放 RTSS 线程堆栈的内存。在开发和调试应用程序时,该设置非常有用。
更改 TerminateThread 函数被调用时子系统的行为:
- 选中 Free the Stack on TerminateThread calls(在 TerminateThread 调用时释放堆栈)复选框,则线程终止时将释放用于 RTSS 线程堆栈的内存。如果不想释放内存,取消选中该复选框。当子系统停止时,内存将被释放;
- 重新启动 RTX64 使更改生效。
修改子系统对优先级反转的使用
RTX64 线程调度设置中,提供了优先级反转协议的选项。优先级反转协议在 Thread Scheduling(线程调度)部分进行了说明。
修改子系统对优先级反转的使用:
- 选中 Use priority inversion(使用优先级反转)复选框,实现分层降级优先级反转协议。取消选中该复选框,将禁用子系统优先级反转;
- 重新启动 RTX64 使更改生效。
配置英特尔® 资源管理器技术 (RDT) 设置
该设置允许用户启用/禁用 Intel RDT(Resource Director Technology,英特尔资源控制器技术),并配置 RDT CAT(Cache Allocation Technology,高速缓存分配技术)和 MBA(Memory Bandwidth Allocation,内存带宽分配)模式:
- CAT:允许 RTX64 为每个逻辑处理器分配L3缓存或L2缓存;
- MBA:允许 RTX64 控制每个(处理器)核心可用的内存带宽;
RDT 使用 CLOS(Class of Service,服务等级)来配置 L3/L2 缓存大小和内存限制(延迟)。作为 RTX64 可扩展性策略,CLOS 0 被配置为最高优先级的 CLOS,其次是 CLOS 1,依此类推。
更多信息,请参阅 Optimizing Performance with Intel Resource Director Technology (RDT)
注意:如果硬件不支持 RDT 性能优化,这些选项将不可用。
启用/禁用 Intel RDT 性能优化:
- 选择一个选项:
- 选中 Optimize performance with Intel® Resource Director Technology (RDT) 复选框,启用性能优化。系统默认;
- 取消选中 Optimize performance with Intel® Resource Director Technology (RDT) 复选框,禁用性能优化;
- 重新启动 RTX64 使更改生效。
更改 CAT/MBA 模式:
注意:更改 CAT/MBA 模式前,必须启用 RDT 性能优化。
- CAT 模式:
- Flat performance mode(平坦性能模式):默认设置。所有 RTSS 逻辑处理器均同等配置所有 RTSS L3/L2 缓存;
- Priority-based CLOS performance mode(基于优先级的 CLOS 性能模式):每个 RTSS 逻辑处理器的 L3/L2 缓存,都基于运行线程的 CLOS 优先级。较高 CLOS 优先级线程通过争用较低 CLOS 优先级线程的 L3/L2 缓存来优化其性能;
- MBA 模式:
- Flat performance mode(平坦性能模式):默认设置。所有 RTSS 内核均配置为最小内存延迟;
- Priority-based CLOS performance mode(基于优先级的 CLOS 性能模式):每个 RTSS 逻辑处理器的内存延迟,都基于运行线程的 CLOS 优先级。该模式下,通过限制相对于其优先级,可能过度利用内存带宽的线程,避免了较高 CLOS 优先级的带宽密集型线程性能下降;
- 重新启动 RTX64 以使更改生效。