首页/新闻资讯/正文详情

如何选择合适的DRAM调度策略?Ramulator 2.1 FRFCFS与Row Policy完整对比

发布时间:2026/11/11 10:01:00 来源:云帆数科 栏目:资讯中心
如何选择合适的DRAM调度策略?Ramulator 2.1 FRFCFS与Row Policy完整对比
【免费下载链接】ramulator2Ramulator 2.0 is a modern, modular, extensible, and fast cycle-accurate DRAM simulator. It provides support for agile implementation and evaluation of new memory system designs (e.g., new DRAM standards, emerging RowHammer mitigation techniques). Described in our IEEE CAL 2023 paper: https://arxiv.org/pdf/2308.11030.项目地址https://gitcode.com/gh_mirrors/ram/ramulator2点击查看免费下载Ramulator 2.1 是一款模块化、可扩展、周期精确cycle-accurate的 DRAM 模拟器用于快速实现与评估新的内存系统设计。在它的内存控制器中DRAM 调度策略由两个正交部件决定请求调度器scheduler决定下一个发哪条请求行策略row_policy决定何时关闭打开的行。选对两者的组合直接影响模拟出的延迟、带宽与 RowHit 命中率。本文带你完整对比 FRFCFS、FRFCFS-RowHit 调度器与 Open、ClosedCAP 行策略帮你在几分钟内为实验做出正确选择。为什么调度策略会决定 DRAM 性能DRAM 的访问遵循先开行ACT再读列RD的协议。当连续访问落在同一行时命中行缓冲RowHit延迟最低若访问另一个行则必须关行再开行RowConflict代价最高。调度器和行策略本质上就是在让正确的行保持打开这件事上做权衡现象含义对性能的影响RowHit访问已在打开的行最低延迟省 ACTRowMiss访问未打开的行需 ACT中等代价RowConflict打开行后又要访问别的行需 PREACT代价最高理解了这个背景再看两种调度器就顺理成章了。Ramulator 2.1 的两大请求调度器调度器接口 i_scheduler.h 只有一个核心方法get_best_request()从待处理队列里挑出下一条最值得发出的请求。它优先选时序就绪的请求就绪相同时按到达顺序先到先得打破平局。FRFCFS先到先得优先就绪最基础的调度器实现见 frfcfs.cppPython 包装为 frfcfs.py。它只做一件事在队列里扫描一遍挑出时序已就绪的请求若多个就绪则取到达最早的那个。简单、无额外状态适合绝大多数基准场景不做行维度的前瞻可能让一条未就绪的旧请求占着坑是 Ramulator 官方示例的默认选择见 example_config.pyFRFCFS-RowHit为行命中让路在 FRFCFS 基础上增加了行感知实现见 frfcfs_rowhit.cppPython 包装为 frfcfs_row_hit.py。它分两轮扫描第一轮标记出队列里所有行命中请求并记录每个 bank 最早的命中到达时刻第二轮执行 FRFCFS但跳过那些会抢占已有行命中的关行请求would_preempt_rowhit。直觉当 nRTP nCCD_L 时一旦行被打开继续访问同行比抢先关行去访问另一行更划算。FRFCFS-RowHit 就是防止后者打乱前者。对比项FRFCFSFRFCFS-RowHit核心逻辑就绪优先 到达顺序就绪优先 保护行命中额外状态无每 bank 的命中标志与到达时刻适用场景通用基准、基线高局部性负载、想最大化 RowHit复杂度低略高两轮扫描Row PolicyOpen 与 ClosedCAP 怎么选行策略接口 i_row_policy.h 定义了 4 个钩子pre_schedule()调度前可注入关行命令、try_upgrade_command()选定时可把命令升级为自动预充电版、on_issue()命令发出后、post_schedule()本 tick 收尾。Open 行策略最宽松的策略访问后不主动关行让行一直开着。实现极简见 open.cpp 与 open.py所有钩子均为空操作。局部性好的负载 → RowHit 高、延迟低访问模式跳跃 → 打开行长期占用可能引发不必要的 RowConflict 与能耗ClosedCAP 行策略访问 N 列后自动关行带列访问计数上限的关闭策略见 closed_cap.cpp 与 closed_cap.py。它给每个 bank 记一个列访问计数器达到上限cap默认 4后主动关行优先尝试命令升级把RD→RDA、WR→WRA自动预充电读/写同时关行这是最省时序的方式若标准不支持 AP 命令或时序未就绪则回退到注入显式PREpb关行一旦发出关行命令该 bank 的计数器立即清零重新计数。对比项OpenClosedCAP关行时机从不主动关列访问达到cap后关关行手段—优先 AP 升级回退 PREpb参数无cap默认 4适用场景高局部性、求低延迟跳跃访问、平衡能耗与延迟调度策略与行策略如何协同在 generic_ddr_controller.cpp 的tick()中两者的协作流程清晰可见推进时钟、刷新队列统计、排空已完成读请求刷新管理器与行策略pre_schedule()先行ClosedCAP 可能在此注入PREpb按active priority read/write的优先级调用调度器挑出最佳候选行策略try_upgrade_command()可能把候选升级为自动预充电命令向 DRAM 发出命令行策略与插件on_issue()记录请求退休retire或升级为 active行策略post_schedule()收尾。也就是说调度器选发谁行策略在选前、选中后、发出后三个时刻介入共同决定最终命令序列。改其中任一方都可能改变 RowHit/Conflict 的统计。三步上手在示例中切换调度策略仓库自带的 examples/example_config.py 是最快的起点。它用SimpleO3前端 DDR4 GenericDDR 控制器默认就是FRFCFSOpenctrl ramulator.controller.GenericDDR( dramddr4, schedulerramulator.scheduler.FRFCFS(), # 可换成 FRFCFSRowHit() refresh_managerramulator.refresh_manager.AllBank(), row_policyramulator.row_policy.Open(), # 可换成 ClosedCAP(cap4) addr_mapperramulator.addr_mapper.RoBaRaCoCh(), )三步即可对比换调度器把FRFCFS()改为FRFCFSRowHit()换行策略把Open()改为ClosedCAP(cap4)cap可调跑并看指标执行python3 examples/example_config.py从sim.stats里读row_hits/row_misses/row_conflicts/avg_read_latency。小技巧同一负载分别用 4 种组合2 调度器 × 2 行策略各跑一遍对比row_conflicts与avg_read_latency往往就能看出哪个组合更贴合你的访问模式。如何验证你的选择关键指标与测试sim.stats中memory_system → controller下有几个最直接的计数器指标含义row_hits/row_misses/row_conflicts三类行访问的总数avg_read_latency平均读延迟控制器周期read_queue_len_avg/write_queue_len_avg读/写队列平均占用想从命令序列层面确认行为是否符合预期仓库的controller_scheduling测试套件就是范本见 test_controller_genericddr.pytest_frfcfs_prefers_ready_request_over_older_blocked_request验证 FRFCFS 优先发就绪请求test_frfcfs_rowhit_keeps_same_bank_row_hits_before_conflict_close验证 FRFCFS-RowHit 在关行前保住同行命中test_closedcap_upgrades_second_access_to_rda验证 ClosedCAP 在cap1时把第二次访问升级为RDA。运行方式PYTHONPATHpython pytest tests/controller_scheduling -q选型速查清单追求基线、通用评估→FRFCFSOpen官方示例默认最简单。高局部性、想压 RowHit 延迟→FRFCFS-RowHitOpen。访问跳跃、想控制能耗与 RowConflict→FRFCFS-RowHitClosedCAP(cap4)并可按负载调小/调大cap。想确认行为正确→ 用controller_scheduling套件断言命令序列与gap。小结在 Ramulator 2.1 里DRAM 调度策略 调度器行策略的组合。FRFCFS简单稳健FRFCFS-RowHit在行局部性上更聪明Open释放行命中之利ClosedCAP用列计数上限在延迟与能耗间找平衡。读懂 generic_ddr_controller.cpp 的 tick 流程与上述几个计数器你就能为自己的工作负载挑出最合适的组合并用controller_scheduling测试快速验证它确实按预期工作。赞分享【免费下载链接】ramulator2Ramulator 2.0 is a modern, modular, extensible, and fast cycle-accurate DRAM simulator. It provides support for agile implementation and evaluation of new memory system designs (e.g., new DRAM standards, emerging RowHammer mitigation techniques). Described in our IEEE CAL 2023 paper: https://arxiv.org/pdf/2308.11030.项目地址https://gitcode.com/gh_mirrors/ram/ramulator2点击查看免费下载相关推荐Linux内核实时调度如何选择最适合你的调度策略Linux内核实时调度如何选择最适合你的调度策略 在嵌入式开发、工业自动化等高实时性要求的场景中你是否经常遇到任务响应延迟、系统卡顿的问题Linux文档教程操作系统知识库Xilem与Masonry深度对比如何选择适合你的UI框架Xilem与Masonry深度对比如何选择适合你的UI框架 Xilem和Masonry是Rust生态中两个重要的UI框架它们共同构成了一个完整的GUI解决方前端桌面应用跨平台Rhino与Nashorn对比如何选择适合的JavaScript引擎Rhino与Nashorn对比如何选择适合的JavaScript引擎 在Java生态系统中选择正确的JavaScript引擎对于项目成功至关重要。Rhino语言运行时编程语言解释器上一篇终极指南Karakeep移动端开发如何利用React Native与Expo打造全平台书签应用下一篇SVGR性能监控设置跟踪转换效率的方法创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

Java 基础入门(五):控制台输入输出与方法详解
Java 基础入门(五):控制台输入输出与方法详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/10 22:48:17

从社区参与到源码贡献:Kornia 贡献指南与开发环境实战
从社区参与到源码贡献:Kornia 贡献指南与开发环境实战

计算机视觉深度学习图像处理 【免费下载链接】kornia 🐍 Geometric Computer Vision Library for Spatial AI 项目地址: https://gitcode.com/GitHub_Trending/ko/kornia 点击查看 免费下载 导读 Kornia 是一个基于 PyTorch 的可微分计算机视觉库&… · 2026/11/9 15:42:49

Aurelio 储蓄目标所需回报率:从公式、二分求解到 17.5% 的实战解读
Aurelio 储蓄目标所需回报率:从公式、二分求解到 17.5% 的实战解读

【免费下载链接】aurelio-finance Open-source personal finance app with an AI financial advisor: track your net worth, investments, ETFs, cash and debts on your own computer. 项目地址: https://gitcode.com/gh_mirrors/au/aurelio-finance 点击查看 免费… · 2026/11/9 8:46:55

电工证图片分几级含金量高不高怎么考才不被坑
电工证图片分几级含金量高不高怎么考才不被坑

电工证图片分几级含金量高不高怎么考才不被坑 你是不是也遇到过这样的情况? 不知道去哪报名怕被中介坑 ,尤其是特种作业证,涉及安全和资质,一点马虎不得。很多人一听说要考电工证,就以为是找个培训机构交钱就能搞定,结果被坑得连证都拿不到。今天咱们… · 2026/11/11 10:00:55

汽车电工证考题大全证怎么转异地
汽车电工证考题大全证怎么转异地

特种作业证考题大全在哪考 汽车电工证怎么转异地报考 你是不是也遇到过这种情况,手头的电工证到期了,又找不到合适的岗位,因为没证根本进不了门?尤其是在河南这样的用工大省, 汽车电工证… · 2026/11/11 10:00:55

合肥考电工证直播怎么报?这证含金量够你找好工作
合肥考电工证直播怎么报?这证含金量够你找好工作

合肥考电工证直播怎么报?这证含金量够你找好工作 现在找工作,电工证是硬门槛, 没有特种作业证连面试资格都没有 ,更别提谈薪资了。特别是合肥地区,电工证含金量高,不少建筑工地、工厂、物业公司都明确要求持证上岗,你要是连个低压电工证都没有,面试… · 2026/11/11 10:00:55

电工证适合女生考吗?真实经历告诉你答案
电工证适合女生考吗?真实经历告诉你答案

电工证适合女生考吗?真实经历告诉你答案 刚毕业没经验,急需特种作业证才能上岗找工作,可一听说要考电工证,很多人第一反应是:这活儿男生干得多,女生适合吗?其实不然,我身边就有好几个女生考了电工证,现在在工地、工厂、维修岗位上干得风生水起。今天… · 2026/11/11 10:00:55

电工证三级报名内部消息:工地太忙根本没时间复习考试怎么办
电工证三级报名内部消息:工地太忙根本没时间复习考试怎么办

电工证三级报名内部消息:工地太忙根本没时间复习考试怎么办 工地太忙根本没时间复习考试,这几乎是每个一线电工的真实写照。尤其是现在施工进度紧、任务重,连吃饭时间都被压缩,更别提抽时间备考了。但如果你是打算 电工证三级报名… · 2026/11/11 10:00:54

之前考的证在外省能不能转过来 电工证技巧书籍有哪些含金量高怎么选
之前考的证在外省能不能转过来 电工证技巧书籍有哪些含金量高怎么选

之前考的证在外省能不能转过来 电工证技巧书籍有哪些含金量高怎么选 之前考的证在外省能不能转过来?这个问题我天天在培训机构门口听见,尤其是从河南三门峡过来的学员,经常问我这个证能不能在本地用。我跟你说, 含金量… · 2026/11/11 9:59:54

电工证丢失还能补吗?千万别踩坑,丢了证等于失业
电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。… · 2026/11/10 2:16:10

电力电缆作业证直播报名入口与办理流程良心建议
电力电缆作业证直播报名入口与办理流程良心建议

电力电缆作业证直播报名入口与办理流程良心建议 你是不是也担心学历不高报不了名?别急,今天就给你讲讲 电力电缆作业证直播 的报名流程和那些你必须知道的干货, 良心建议 在这里,别错过。 电力电缆作业证直播报名需要什么条件?… · 2026/11/10 17:46:39

英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑
英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑

英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 怕考不过白交培训费?英德电工证报考费多少钱,你真的了解吗?现在市面上培训机构五花八门,价格参差不齐,很多人一不小心就花了冤枉钱,结果还考不过。别急,今天就来给你说清楚英德电工证的… · 2026/11/10 17:11:43

_中职电工证最新政策解读
_中职电工证最新政策解读

中职电工证在哪考?工地太忙根本没时间复习考试的救星来了 工地太忙根本没时间复习考试,这是很多正在备考 中职电工证 的建筑工友的真实写照。你不是不想考,而是真的没时间。但别担心,这期内容是 新乡初次报考人员… · 2026/11/11 0:00:52

昆明电工证培训价格值不值得考?老电工告诉你真相
昆明电工证培训价格值不值得考?老电工告诉你真相

昆明电工证培训价格值不值得考?老电工告诉你真相 之前考的证在外省能不能转过来?这个问题是很多在外地打工、换城市生活、或者是想在昆明发展的朋友最关心的。尤其是现在云南发展快,很多企业都在招持证上岗的电工,如果你手头有证但不在本地,那这个证是不… · 2026/11/11 0:00:52

特种电缆张工网上查询全攻略:外省证如何转过来
特种电缆张工网上查询全攻略:外省证如何转过来

特种电缆张工网上查询全攻略:外省证如何转过来 之前考的证在外省能不能转过来?这是很多特种作业从业者最关心的问题,尤其是像特种电缆张工这类证书,直接关系到日常工作是否合规、能否顺利晋升。很多小伙伴因为证书归属地的问题,陷入职业发展的瓶颈,甚至… · 2026/11/11 0:00:52

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/10 20:19:29

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/10 19:22:45

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/10 17:00:47

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码