嵌入式OS设计策略解读|忆联企业级SSD高可靠、高性能的实现方法
企业级SSD需要在大量企业数据读写下保持超高稳定性,以及24 小时全天候运行,SSD的读写速度、使用寿命、稳定性及可靠性是企业级用户关注的重点。为满足用户对企业级SSD高性能、低延时、轻量级、高可靠等需求,忆联设计并开发了适合SSD的嵌入式操作系统(Operating System,缩写:OS),并在其上构建了可复制性强的SSD 控制器软件系统。
(资料图片)
嵌入式软件分为三个层次,即驱动层、OS层、业务层。业务层集结了庞大复杂的产品功能,负责处理业务逻辑的部分,通常包括接口协议、业务功能实现、系统数据保存等;驱动层把设备的硬件访问抽象成软件接口,为OS层和业务层服务;OS层为业务层提供软件平台服务,让业务层可以聚焦在实现庞大复杂的软件功能上。
图1
通用的OS功能很多,包括处理器管理、内存管理、设备管理、文件管理、作业管理等,而对于嵌入式OS来说,主要聚焦在处理器管理、内存管理等核心功能上,本文则重点阐述处理器管理、互斥、通信。
SSD系统的处理器架构和OS部署
在PCIe 4.0时,SSD的读写带宽达到8GB/s, PCIe 5.0时SSD的读写带宽可能达到16GB/s。为了实现SSD的高性能,通常SSD控制器会使用多CPU、甚至多Cluster的处理器架构,分别用于SSD业务计算和Nand flash操作。
图2
在多处理器、多Cluster架构下,业务部署时可以选择SMP模式、AMP模式、或者SMP和AMP混合模式。在SSD系统里,基本上都是SMP模式和AMP模式混合,OS要负责程序调度、互斥、通信功能。在嵌入式系统中的AMP模式的通信,可以类比为通用系统里多进程之间的通信,因为没有全局数据可用,要借助外部存储空间进行通信。
忆联OS的调度策略
常规的OS调度对象都是线程,且每个线程有自己的堆栈和优先级,具有抢占机制。忆联在设计SSD嵌入式系统时,通过分析发现,线程调度开销大、线程之间存在较为复杂的互斥问题、容易出现优先级逆转死锁问题,加之线程运行的随机性和无序性,让系统时刻处于“不确定”状态。因此,忆联SSD选择了自创的“功能代码(入口函数及其调用的全部函数)”调度策略。为了描述方便,本文把这些可以被OS调度的“功能代码(入口函数及其调用的全部函数)”,称为SSD系统里的“事务”。
在SSD系统里的程序,不再以线程方式组织,而是以一个个不会阻塞的独立“事务处理流程”方式组织。这些“事务处理流程”可以以各种方式被OS调度。
事务的主要特征:
(1)不会阻塞。一个事务完成一个特定的计算,它在计算过程中,不需要等待外设动作,会一直运行到结束。如果一个流程会被阻塞,则需要在阻塞点切分为多个独立的事务。一旦一个事务被CPU执行,则一定会执行到事务结束。在系统里,除了每个CPU正在执行的事务是运行状态,其他事务都处在结束状态。比起线程的阻塞状态,事务状态变得极其简单。
(2) 事务共享堆栈。事务执行完成时,不再有局部变量需要保存在堆栈里。 事务共享堆栈,堆栈需求小,调度时也没有了堆栈切换的开销。
(3)同一个CPU,事务串行执行。一个CPU里的事务,一定是执行完毕一个事务后,才能开始执行下一个事务。同一个事务,在一个CPU上不会重入。
(4)SMP模式下事务间互斥变得简单。见图3。
图3
备注:
(1)事务完成时,不会持有全局变量的访问锁。
(2)AMP之间不存在全局共享数据,不存在互斥。
事务的调度方式
图4
事务优先级和实时性
一次性事务具有事务优先级功能。OS接受一次性事务调度请求,通过高优先级来处理系统里一些紧急事务,以此达成特定事件的实时处理。
图5
中断与事务
前面已经讲述在忆联OS里,同一个CPU里事务之间不会出现抢占,只有当一个事务运行完成后,才会运行另外一个事务,但是中断依然具有抢占功能。
中断处理程序遵循常规的中断处理流程,中断到来时,还是会抢占当前事务。当中断到来时,OS会把当前运行的事务程序压栈,跳转到中断处理程序运行,中断处理程序完成后,被中断的事务程序被恢复运行。
中断处理程序运行时也是使用事务程序运行时的堆栈。
中断处理程序具备的抢占功能,可以满足系统里对于实时性要求高的场景,但同时也带来了中断和事务之间的互斥问题。中断和事务的互斥方式如图六。
图6
中断处理程序实现时,可分为中断上半部和下半部。上半部读取外设数据,下半部发送事务消息到OS调度处理。中断下半部的互斥就变成了事务之间的简单互斥方式了。中断发给OS的事务调度消息,可以根据需要选择使用“紧急、高、常规”优先级。
中断处理举例:IPC中断
一般来说,IPC中断用于AMP与 CPU之间的通信。
发送方把数据写入共享的DDR后,发送IPC中断给接受方。
接收方的IPC中断程序读取DDR里的通信数据,然后发送事务消息到自己的OS,OS按照事务进行调度处理该事务消息。
中断处理程序读取DDR里的通信数据,就是中断上半部。读取通信数据并做具体处理,则是事务完成,是中断的下半部。
总结
通过事务调度思路,忆联实现了旗下企业级SSD产品的高性能和高可靠性,业务功能的设计、实现、扩展都变得更加简单和灵活,业务功能的代码复用也变得更简单,这让忆联在开发新代次SSD时,可以很好地继承已有代次SSD产品的功能和品质,保障忆联可以持续为客户提供高品质SSD产品与存储解决方案。
关键词:
您可能也感兴趣:
为您推荐
和切尔西抢人?天空:一家沙特俱乐部就签下凯塞多询问布莱顿
茄子能和西红柿一起吃吗(茄子能和西红柿一起吃吗宝宝)
中国人均财富出炉了,有多少钱才算及格?你达标了吗?
排行
最近更新
- 嵌入式OS设计策略解读|忆联企业级SSD高可靠、高性能的实现方法
- 大厂重回快速增长,11家公司去重用户超5亿
- 独流减河进洪闸闸门全部开启 确保上游来水平稳下泄
- 贵广网络:董事长李巍辞职
- 执业医师执业范围有哪些 医师执业范围有哪些
- 脖子扭了算意外险吗?保障包括哪些呢?
- 西红柿打卤面的做法窍门 西红柿打卤面的做法
- 蔡资深民居(关于蔡资深民居简述)
- 应急管理部:8月份我国南北多地洪涝灾害风险较高
- 2023年中华文化大乐园—印尼普禾格多营开营
- 京津冀山洪为何如此严重?专家谈本轮暴雨两个新特点
- 安居小区(关于安居小区简述)
- 宋代人也很励志 山西宋代墓内题字“世上无难事,只要有心人”
- 枪之轨迹爆破者有什么技能 枪之轨迹英雄爆破者详解
- 企业所得税税率变化 企业所得税税率5
- 理想汽车:7月共计交付新车34134辆,同比增长227.5%
- 祛斑霜效果最好的排名第一,淡斑效果好的护肤品揭晓
- 方钢管规格表 方钢管规格表及重量
- 爱情教育的主要内容和欣赏感受
- 国能肇庆电厂:二期项目建设快速推进,绿色能源为产业发展添...
- 《长相思》哪四个男主 四位男主与女主关系是怎样的
- 《第九区》导演大逃杀游戏《Off the Grid》大量截图
- 现实打败企业家,手握13亿美金却放弃创业的biotech
- 国产十大新能源品牌7月销量:比亚迪再创新高,蔚来首破2万大关!
- 德国氢能和燃料电池协会提案:德国的氢气进口战略
- 新疆葡萄丰收季 合作社助农采收销全国
- 20年了,这一次国产动画真的要“崛起”了
- 破发股安杰思跌6.26%创新低 超募8.8亿中信证券保荐
- 连刘海都不敢掀起来,还称什么女神!能扛住“大光明”才是真美人
- 国乒启程威海!王楚钦大牌衣着显富贵,孙颖莎的“乞丐装”亮了。