应用于PCIE对异质设备的中断处理系统与方法
文献发布时间:2023-06-19 09:35:27
技术领域
一种周边硬体资源的中断的处理系统与方法,特别有关应用于PCIE对异质设备的中断处理系统与方法
背景技术
对于传统所使用的各种低速的通讯接口(例如:Digital I/O、Analog I/O或RS-232等)虽然可以转接至其他高速通讯接口中(例如:通用序列汇流排(Universal SerialBus,USB)或快捷外设互联标准(Peripheral Component Interconnect Express,简称PCIE))。但是受限于传统通讯接口的中断处理机制(Interrupt Service Routine,简称ISR)会连带影响在高速传输接口中的传输效率。
因为传统通讯是采用轮询机制,因此控制器会向所连接的各项终端设备逐一询问有无中断要求发出。当有终端设备发出中断要求时,控制器将会处理完该中断要求后才会询问此一终端设备有无发出中断要求。由于控制器仅能处理现行的中断要求,使得其他设备的中断要求会被保留住而无法被接收,造成终端设备的传输产生壅塞。
除了硬体架构的不同外,对于软体方面也需要有相应的协调处理。作业系统(operation system)对于计算机而言是不可或缺的角色。作业系统除了提供使用者操作的介面外,也兼具控制计算机相关硬体资源的处理。为能让作业系统可以更完备的支援各种硬体资源,因此每种硬体会有对应的驱动程式(driver)用以作为硬体与软体的中介沟通。
也由于驱动程式会直接影响作业系统与硬体,因此每一驱动程式都要通过作业系统的认证。以微软公司(Microsoft)的视窗作业系统(Windows OS)为例。当硬体供应商制造新的介面卡或是改版驱动程式时,供应商都需要重新提供驱动程式给微软公司。当微软公司确认新版驱动程式无误后才可以提供给终端客户。但每一次验证驱动程式都需要付验证金给微软公司,而且验证的过程需要经过冗长的时间。因此对于供应商而言,每一次改版就需要验证驱动程式,而所述的验证程序都是大量的耗费开发成本。
发明内容
本申请所要解决的技术问题在于降低处理设备中断的等待时间,并且降低送验驱动程式的验证成本。
为了解决上述问题,本申请提供一种应用于PCIE对异质设备的中断处理系统包括PCIE转接卡、储存单元与处理单元。PCIE转接卡具有控制单元、识别资讯与至少一通讯接口,该控制单元电性连接于该些通讯接口;储存单元具有服务程式、驱动程式与多个缓存结构,每一缓存结构用于存储中断要求;处理单元电性连接于PCIE转接卡与储存单元,处理单元执行驱动程式与服务程式,驱动程式根据识别资讯建立多个传输通道,并由驱动程式将不同的传输通道指派相应的通讯接口,传输通道用于传输中断要求或存取要求;若驱动程式侦测任一传输通道传输中断要求,驱动程式将中断要求存入缓存结构,若在缓存结构存在中断要求,由服务程式处理中断要求。
本申请另提出一种应用于PCIE对异质设备的中断处理方法包括:在作业系统中运行驱动程式与服务程式;初始化PCIE转接卡,使服务程式驱使PCIE转接卡的多组通讯接口于作业系统中映射为多个传输通道;由驱动程式轮询监听传输通道,并接收传输通道所发出的中断要求或存取要求;当驱动程式侦测中断要求被发出时,驱动程式将中断要求存入至缓存结构;若缓存结构中存在中断要求,由服务程式处理中断要求。
与现有技术相比,本申请的应用于PCIE对异质设备的中断处理系统与方法,其系应用于高速传输介面对于各种异质设备的相关控制。由于本发明的驱动程式与服务程式分别处理各自的程序,因此服务程式不需等待完成中断要求才能执行下一个中断要求。这样一来,驱动程式可以一直进行中断要求的侦测,而服务程式可以专职处理中断要求。当开发人员对服务程式的内容进行变更时,开发人员不需要重新验证驱动程式。所以本发明除了提高终端设备的中断处理效率,也降低每次改版时送验驱动程式的验证成本。
当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为本申请的系统架构示意图。
图2为本申请的运作流程示意图。
图3A为本申请的运作架构示意图。
图3B为本申请的运作架构示意图。
图3C为本申请的运作架构示意图。
图3D为本申请的另一运作架构示意图。
图3E为本申请的多中断要求在缓存结构的伫列示意图。
具体实施方式
以下请配合附图及实施例来详细说明本申请的实施方式,藉此对本申请如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
请参考第1图所示,为本申请的系统架构示意图。本申请的中断处理系统100可应用于个人电脑、笔记型电脑或具有PCIE接脚133的嵌入式计算机中。本申请的PCIE对异质设备的中断处理系统100包括处理单元110、储存单元120与PCIE转接卡130。处理单元110电性连接于储存单元120与PCIE转接卡130。本申请所称的异质设备是指以PCIE脚位为主,相对于其他种类的通讯接口设备。。举例来说,以PCIE转接卡130转接至RS-232的列表机为例,RS-232的列表机则为异质设备。储存单元120存储作业系统121(operation system)、服务程式122(service program)、驱动程式123(driver)与缓存结构124。处理单元110用于运行作业系统、服务程式122、驱动程式123与应用程式(application),并于储存单元120中划分若干个缓存结构124。
PCIE转接卡130除了可以安装于主板(main board)的PCIE插槽外,也可以被装设于相容PCIE转接卡130的M.2插槽中。在本申请中系以PCIE插槽作为示例,并非仅局限于此。PCIE转接卡130包括控制单元131、记忆单元132、PCIE接脚133与至少一通讯接口135。控制单元131电性连结于记忆单元132、PCIE接脚133与该些通讯接口135。记忆单元132储存识别资讯136。PCIE接脚133用于连接主机板的对应插槽,使控制单元131可耦接于处理单元110。识别资讯136用于记载PCIE转接卡130所搭载的各通讯接口135与种类,另外识别资讯136也记录各通讯接口135的记忆体空间的配置。通讯接口135的种类系为类比输入输出接口(Analog Input/output)、数位输入输出接口(Digital Input/output)、串列接口(Serialport)、并列接口(Parallel port)或通用序列汇流排(Universal Serial Bus,USB)。每一通讯接口135可连接相应种类接口的终端设备140,例如:串列的通讯接口135可以连接条码扫描器(barcode scanner)或印表机等终端设备140。
控制单元131通过通讯接口135电性连接至终端设备140,且控制单元131另电性连接于处理单元110。PCIE转接卡130被插设于插槽时,控制单元131将会把识别资讯136发送至处理单元110。处理单元110根据识别资讯136判断PCIE转接卡130所搭载的通讯接口135的种类与数量。接着,处理单元110依据识别资讯136建立各通讯接口135的传输通道310(channel)。每一组传输通道310均对应通讯接口135。传输通道310用于定义所连接的终端设备140的种类。
举例而言,如果PCIE转接卡130具有两通讯接口135,则第一组的传输通道310可以是RS-232的通讯接口135,而第二组的传输通道310可对应串列通讯接口135。服务程式122可以根据识别资讯136在作业系统中配置相应的传输通道310,同时指派各传输通道310的记忆体位址(memory address)与区段空间,并使传输通道310的资料可以映射(mapping)与储存于缓存结构124中。缓存结构124可以以伫列(queue)或堆叠(stack)的方式实现。
一般而言,终端设备140可以向处理单元110发出中断要求320(InterruptService Routine,ISR)或存取要求。中断要求320用于向控制单元131发出终端设备140所需求的讯号,以使处理单元110可以调配相关的硬体资源给终端设备140。存取要求系为终端设备140向处理单元110进行资料的传输要求。由于习知技术的中断要求320会影响处理单元110的处理排程,使得其他终端设备140的中断要求320无法被立即处理。因而导致计算机的处理效能低落。存取要求的种类分别为事件(event)、指令(command)或资料(data),三种型态的存取要求分别表示执行的优先顺序。最高优先的存取要求为事件,而最低优先的存取要求系为资料。
为进一步说明本申请的运作方式,请配合参考第2图,为本申请的运作流程示意图。本申请的PCIE对异质设备的中断处理方法包括:
步骤S210:启动计算机并在作业系统中运行驱动程式与服务程式;
步骤S220:初始化PCIE转接卡,使服务程式驱使PCIE转接卡的多组通讯接口于作业系统中映射为多个传输通道;
步骤S230:由驱动程式轮询监听所述传输通道,并接收传输通道所发出的中断要求或存取要求;
步骤S240:侦测当前的缓存结构中是否存在中断要求;
步骤S241:若缓存结构中存在中断要求,由服务程式处理中断要求;
步骤S242:若缓存结构中不存在中断要求,服务程式移向次一个缓存结构并侦测有无中断要求;以及
步骤S250:当驱动程式侦测传输通道所发出的存取要求,调用服务程式执行存取要求。
首先,启动计算机并于作业系统121中运行PCIE转接卡130的驱动程式123与服务程式122。于此同时,作业系统121也会对所安装的PCIE转接卡130进行初始化的处理,由作业系统121根据PCIE转接卡130的识别资讯136设定传输通道310的种类与相应数量。
于此同时,通讯接口135可选择性连接实体的终端设备140,或不连接终端设备140。服务程式122都会根据传输通道310的种类与数量,并于作业系统121中映射为多个传输通道310。服务程式122对于各传输通道310配置相应的记忆体位址与区段。并且服务程式122于储存单元120中划分相应传输通道310数量的缓存结构124,以使缓存结构124可以存储传输通道310所传输的要求或资料。
在终端设备140连接通讯接口135后,终端设备140可以向处理单元110发送中断要求320或存取要求。本申请的驱动程式123会侦测终端设备140有无发送中断要求320。若终端设备140发出中断要求320时,驱动程式123会将中断要求320存入对应的缓存结构124中。随后,驱动程式123会移向次一终端设备140并侦测有无发出中断要求320。在驱动程式123完成所有通讯接口135的侦测后,驱动程式123会向服务程式122发送一完成通知330,用于通知服务程式122开始侦测。
服务程式122接获完成通知330时,服务程式122将会依序的侦测缓存结构124中是否存在中断要求320。服务程式122会根据传输通道310的排列顺序对缓存结构124依序侦测。而服务程式122在侦测缓存结构124的同时,驱动程式123会进行次一回合各终端设备140的中断要求320的侦测。对于存取要求而言,当驱动程式侦测123传输通道所发出的存取要求,调用服务程式122执行存取要求。
为为清楚说明本申请的服务程式122与驱动程式123的侦测与处理中断要求320的过程,系以四项终端设备140的轮询侦测与处理作为说明,但并非仅局限于此数量。请配合第3A图~第3E图所示,为本申请的中断要求320的侦测顺序与时处理的示意图。在本实施态样的说明例中PCIE转接卡130分别连接第一设备411、第二设备412、第三设备413与第四设备414。第一设备411对应第一通道421、第二设备412对应第二通道422、第三设备413对应第三通道423、第四设备414对应第四通道424。第一通道421、第二通道422、第三通道423与第四通道424分别映射第一缓存431、第二缓存432、第三缓存433与第四缓存434,如第3A图所示。
首先,驱动程式123会由第一设备411、第二设备412、第三设备413至第四设备414的轮询并监听有无中断要求320被发出。在此驱动程式123分别在第一时间、第二时间、第三时间与第四时间对各终端设备140进行监听,且假设第一设备411、第三设备413与第四设备414依序发出中断要求320。因此驱动程式123会将各中断要求320分别存入相应的缓存结构124,如第3B图所示。当驱动程式123完成第一设备411、第二设备412、第三设备413至第四设备414的轮询后,驱动程式123将会结束这一回合的中断要求320的侦测,并同时发送完成通知330至服务程式122。驱动程式123则将会开始次一回合的各中断要求320的侦测。
接着,由于服务程式122开始对第一缓存431、第二缓存432、第三缓存433与第四缓存434逐一侦测是否存在中断要求320,如第3C图所示。在第3C图中服务程式122将中断要求320转存至各缓存结构124中。再由驱动程式123依序对缓存结构124与中断要求320进行相应的处理。在处理中断要求320的过程中,服务程式122除了可以暂停中断要求320的侦测,等待驱动程式123完成所有的中断要求320。服务程式122也可以进行次一回合的中断要求320的侦测。如果服务程式122进行次一回合的中断侦测时,则驱动程式123可以将未完成的中断要求320以伫列的方式存在各缓存结构124之中,如第3D图所示。
在第3D图中,第三设备413在次一回合又发出新的中断要求320。假设驱动程式123仍处理第四缓存434的中断要求320时,则服务程式122仍会将新的中断要求320转发至第三缓存433。假设在经过多回合且缓存结构124未能完成中断要求320时,则中断要求320会以伫列的方式储存在缓存结构124中,如第3E图所示。由于服务程式122与驱动程式123的平行处理,使得PCIE转卡对异质设备的轮询时不会被单一终端设备140而卡住。
本申请的应用于PCIE对异质设备的中断处理系统与方法,应用于高速传输介面对于各种异质设备的相关控制。由于本申请的驱动程式123与服务程式122分别处理各自的程序,因此服务程式122不需等待完成中断要求320才能执行下一个中断要求320。这样一来,驱动程式123可以一直进行中断要求320的侦测,而服务程式122可以专职处理中断要求320。当开发人员对服务程式122的内容进行变更时,开发人员不需要重新验证驱动程式123。所以本申请除了提高终端设备140的中断处理效率,也降低每次改版时送验驱动程式123的验证成本。
本申请的应用于PCIE对异质设备的中断处理方法包括:在作业系统中运行驱动程式与服务程式;初始化PCIE转接卡,使服务程式驱使PCIE转接卡的多组通讯接口于作业系统中映射为多个传输通道;由驱动程式轮询监听传输通道,并接收传输通道所发出的中断要求或存取要求;当驱动程式侦测中断要求被发出时,驱动程式将中断要求存入至缓存结构;若缓存结构中存在中断要求,由服务程式处理中断要求。
所述装置与前述的方法流程描述对应,不足之处参考上述方法流程的叙述,不再一一赘述。上述说明示出并描述了本申请的若干优选实施例,但如前所述,应当理解本申请并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本申请的精神和范围,则都应在本申请所附权利要求的保护范围内。
- 应用于PCIE对异质设备的中断处理系统与方法
- 用于具有多个总线的PCIE电桥的中断处理系统及方法