临海市尊龙凯时人生就是搏!官网,尊龙凯时人生就博官网登录,尊龙凯时人生就是真空设备有限公司
电话:0576-85021388/85138880
传真:0576-85021389
联系人:罗朝金13757699803
网址:http://lybeisite.com
地址:浙江省临海江南街道花溪路下岙余
常规的OS调度对象都是线程◆★,且每个线程有自己的堆栈和优先级,具有抢占机制。忆联在设计SSD嵌入式系统时,通过分析发现,线程调度开销大、线程之间存在较为复杂的互斥问题、容易出现优先级逆转死锁问题,加之线程运行的随机性和无序性,让系统时刻处于◆■◆★“不确定■■★”状态。因此■■■,忆联SSD选择了自创的★★■■◆◆“功能代码(入口函数及其调用的全部函数)”调度策略。为了描述方便,本文把这些可以被OS调度的“功能代码(入口函数及其调用的全部函数)★★◆◆”,称为SSD系统里的“事务”。
中断处理程序遵循常规的中断处理流程,中断到来时,还是会抢占当前事务。当中断到来时,OS会把当前运行的事务程序压栈◆◆■★◆■,跳转到中断处理程序运行,中断处理程序完成后,被中断的事务程序被恢复运行。
(1)不会阻塞。一个事务完成一个特定的计算,它在计算过程中★◆◆★★■,不需要等待外设动作,会一直运行到结束。如果一个流程会被阻塞★■★◆,则需要在阻塞点切分为多个独立的事务。一旦一个事务被CPU执行,则一定会执行到事务结束。在系统里■◆★★◆◆,除了每个CPU正在执行的事务是运行状态,其他事务都处在结束状态。比起线程的阻塞状态■■■◆■◆,事务状态变得极其简单。
中断处理程序具备的抢占功能◆◆,可以满足系统里对于实时性要求高的场景,但同时也带来了中断和事务之间的互斥问题◆◆■■★。中断和事务的互斥方式如图六◆★◆■★★。
嵌入式软件分为三个层次尊龙ag旗舰厅官网,即驱动层、OS层■◆、业务层■★★★■。业务层集结了庞大复杂的产品功能,负责处理业务逻辑的部分,通常包括接口协议、业务功能实现、系统数据保存等;驱动层把设备的硬件访问抽象成软件接口◆★◆,为OS层和业务层服务;OS层为业务层提供软件平台服务,让业务层可以聚焦在实现庞大复杂的软件功能上。
在多处理器、多Cluster架构下,业务部署时可以选择SMP模式尊龙ag旗舰厅官网、AMP模式■◆★◆、或者SMP和AMP混合模式。在SSD系统里◆★◆,基本上都是SMP模式和AMP模式混合,OS要负责程序调度、互斥、通信功能。在嵌入式系统中的AMP模式的通信,可以类比为通用系统里多进程之间的通信,因为没有全局数据可用,要借助外部存储空间进行通信。
通过事务调度思路,忆联实现了旗下企业级SSD产品的高性能和高可靠性,业务功能的设计◆◆★■★★、实现、扩展都变得更加简单和灵活,业务功能的代码复用也变得更简单★◆★★,这让忆联在开发新代次SSD时,可以很好地继承已有代次SSD产品的功能和品质,保障忆联可以持续为客户提供高品质SSD产品与存储解决方案。
(2) 事务共享堆栈。事务执行完成时,不再有局部变量需要保存在堆栈里■★。 事务共享堆栈★■■◆■,堆栈需求小◆◆,调度时也没有了堆栈切换的开销。
企业级SSD需要在大量企业数据读写下保持超高稳定性,以及24 小时全天候运行,SSD的读写速度★◆◆★、使用寿命★◆◆■■、稳定性及可靠性是企业级用户关注的重点。为满足用户对企业级SSD高性能、低延时、轻量级、高可靠等需求◆★◆★◆◆,忆联设计并开发了适合SSD的嵌入式操作系统(Operating System尊龙ag旗舰厅官网,缩写:OS),并在其上构建了可复制性强的SSD 控制器软件系统。
通用的OS功能很多◆◆◆,包括处理器管理、内存管理◆■◆、设备管理、文件管理、作业管理等,而对于嵌入式OS来说■★,主要聚焦在处理器管理、内存管理等核心功能上,本文则重点阐述处理器管理、互斥■★◆■◆★、通信。
前面已经讲述在忆联OS里★◆◆★,同一个CPU里事务之间不会出现抢占,只有当一个事务运行完成后,才会运行另外一个事务★◆■★■,但是中断依然具有抢占功能■★★★。
中断处理程序读取DDR里的通信数据,就是中断上半部。读取通信数据并做具体处理,则是事务完成■★★■,是中断的下半部。
一次性事务具有事务优先级功能■◆。OS接受一次性事务调度请求★■,通过高优先级来处理系统里一些紧急事务,以此达成特定事件的实时处理。
接收方的IPC中断程序读取DDR里的通信数据★◆★★◆,然后发送事务消息到自己的OS,OS按照事务进行调度处理该事务消息■■★■◆◆。
在SSD系统里的程序,不再以线程方式组织■■◆,而是以一个个不会阻塞的独立“事务处理流程”方式组织。这些★■“事务处理流程”可以以各种方式被OS调度。
(3)同一个CPU,事务串行执行。一个CPU里的事务★★,一定是执行完毕一个事务后★◆,才能开始执行下一个事务。同一个事务,在一个CPU上不会重入。
中断处理程序实现时★★■,可分为中断上半部和下半部◆■■。上半部读取外设数据,下半部发送事务消息到OS调度处理。中断下半部的互斥就变成了事务之间的简单互斥方式了★★★◆。中断发给OS的事务调度消息,可以根据需要选择使用“紧急◆■、高、常规”优先级。
应用领域