处理输入/输出存储指令的制作方法

文档序号:26544266发布日期:2021-09-07 22:58阅读:来源:国知局

技术特征:
1.一种用于处理输入/输出存储指令(30)的数据处理系统(210),包括:通过输入/输出总线控制器(20)通信地耦合到至少一个输入/输出总线(22)的系统嵌套(18),还至少包括数据处理单元(216),其包括内核(12)、系统固件(10)和异步内核

嵌套接口(14),其中所述数据处理单元(216)经由聚合缓冲区(16)通信地耦合到所述系统嵌套(18),其中所述系统嵌套(18)被配置以异步地从通信地耦合到所述输入/输出总线(22)的至少一个外部设备(214)加载数据和/或将数据存储到所述至少一个外部设备(214),其中所述异步内核

嵌套接口(14)包括具有多个输入/输出状态缓冲区(24)的输入/输出状态阵列(44)、阵列管理和访问逻辑(46),并且其中(i)在所述数据处理系统(210)上运行的操作系统,发布所述输入/输出存储指令(30),其至少指定具有通过地址的偏址、要传送的数据和/或指向要传送的数据的指针以及所述数据的长度的输入/输出函数;(ii)所述数据处理单元(216)被配置以通过在所述输入/输出存储指令(30)中指定的所述地址来识别所述输入/输出函数;(iii)所述数据处理单元(216)被配置以验证在地址空间上和在客户机实例级别上是否允许访问所述输入/输出函数,所述客户机在所述数据处理系统(210)上运行;(iv)所述数据处理单元(216)被配置以在所述系统嵌套(18)中所述输入/输出存储指令(30)的执行完成之前完成所述输入/输出存储指令(30)∶(v)所述系统固件(10)被配置得如果在所述输入/输出存储指令(30)的异步执行期间由所述数据处理单元(216)检测到错误,则通过中断、发送所述失败的异步执行的数据,来通知所述操作系统;(vi)所述阵列管理和访问逻辑(46)收集所述存储指令(30)的完成并且基于所接收的完成消息更新所述输入/输出状态缓冲区(24);(vii)所述数据处理单元(216)延迟所述存储指令(30)的执行,直到输入/输出状态缓冲区(24)可用于存储关于待决存储指令(30)的完成的信息。2.根据权利要求1所述的数据处理系统,所述数据处理单元(216)延迟异步和/或同步存储指令(30)的执行,直到输入/输出状态缓冲区(24)可用于存储关于待决存储指令(30)完成的信息。3.根据权利要求1或2所述的数据处理系统,进一步地,该输入/输出状态缓冲区(24)从该系统嵌套(18)和/或从该输入/输出总线控制器(20)收集消息状态,尤其是从该系统嵌套(18)收集完成状态。4.根据权利要求3所述的数据处理系统,其中通过输入/输出状态缓冲区索引对该消息状态和/或该完成状态进行编号。5.根据在前权利要求中任一项所述的数据处理系统,所述聚合缓冲区(16)经由异步总线(38)通信地耦合到所述异步内核

嵌套接口(14)。6.根据在前权利要求中任一项所述的数据处理系统,其中,如果数据的长度超过8字节,数据可以由输入/输出存储指令(30)通过具有早期完成消息的异步传输机制在多个数
据包中传输到所述聚合缓冲区(16),否则,在一个数据包中传输数据。7.根据在前权利要求中任一项所述的数据处理系统,该系统固件(10)包括用于处理该输入/输出存储指令(30)的异步输入/输出驱动器代码(32)。8.根据权利要求7所述的数据处理系统,该内核(12)包括异步设置代码(34),用于处理对该异步输入/输出驱动程序代码(32)的状态信息的存储器要求。9.根据在前权利要求中任一项所述的数据处理系统,所述异步内核

嵌套接口(14)包括异步内核

嵌套接口转发组件(36),用于转发本地完成的数据。10.根据在前权利要求中任一项所述的数据处理系统,所述聚合缓冲区(16)包括早期完成逻辑(26),用于在发送请求之后传送空闲供重用消息。11.根据在前权利要求中任一项所述的数据处理系统,其中该系统固件(10)包括阵列管理逻辑(42),该阵列管理逻辑(42)分配/释放该输入/输出状态阵列(44)中的输入/输出状态缓冲区(24)和/或发起新的存储指令(30)的开始。12.根据在前权利要求中任一项所述的数据处理系统,系统消息包括以下之一:

分层物理目标地址,

提供smt线程或聚合缓冲区标识符,

数据的长度,

输入/输出总线地址,

输入/输出状态缓冲区索引。13.一种用于处理针对数据处理系统(210)的至少一个外部设备(214)的输入/输出存储指令(30)的方法,所述数据处理系统(210)包括:系统嵌套(10),通过输入/输出总线控制器(14)通信地耦合到至少一个输入/输出总线(22),并且进一步至少包括数据处理单元(216),所述数据处理单元(216)包括内核(12)、系统固件(10)和异步内核

嵌套接口(14),其中所述数据处理单元(216)经由聚合缓冲区(16)通信地耦合到所述系统嵌套(18),其中,所述外部设备(214)通信地耦合到所述输入/输出总线(22),其中所述异步内核

嵌套接口(14)包括具有多个输入/输出状态缓冲区(24)的输入/输出状态阵列(44)、阵列管理和访问逻辑(46),该方法包括(i)在所述数据处理系统(210)上运行的操作系统,发布所述输入/输出存储指令(30),其至少指定具有通过地址的偏址、要传送的数据和/或指向要传送的数据的指针以及所述数据的长度的输入/输出函数;(ii)所述数据处理单元(216)被配置以通过在所述输入/输出存储指令(30)中指定的所述地址来识别所述输入/输出函数;(iii)所述数据处理单元(216)被配置以验证在地址空间上和在客户机实例级别上是否允许访问所述输入/输出函数,所述客户机在所述数据处理系统(210)上运行;(iv)所述数据处理单元(216)被配置以在所述系统嵌套(18)中所述输入/输出存储指令(30)的执行完成之前完成所述输入/输出存储指令(30):(v)所述系统固件(10)被配置得如果在所述输入/输出存储指令(30)的异步执行期间
由所述数据处理单元(216)检测到错误,则通过中断、发送所述失败的异步执行的数据,来通知所述操作系统;(vi)所述阵列管理和访问逻辑(46)收集所述存储指令(30)的完成并且基于所接收的完成消息更新所述输入/输出状态缓冲区(24);(vii)所述数据处理单元(216)延迟所述存储指令(30)的执行,直到输入/输出状态缓冲区(24)可用于存储关于待决存储指令(30)的完成的信息。14.根据权利要求13所述的方法,所述数据处理单元(216)延迟异步和/或同步存储指令(30)的执行,直到输入/输出状态缓冲区(24)可用于存储关于待决存储指令(30)的完成的信息。15.根据权利要求13或14所述的方法,进一步地,所述输入/输出状态缓冲区(24)从所述系统嵌套(18)和/或从所述输入/输出总线控制器(20)收集消息状态,尤其是从该系统嵌套(18)收集完成状态,其中通过输入/输出状态缓冲区索引对该消息状态和/或该完成状态进行编号。16.根据权利要求15所述的方法,其中所述系统固件(10)包括阵列管理逻辑(42)、该阵列管理逻辑(42)分配/释放该输入/输出状态阵列(44)中的输入/输出状态缓冲区(24)和/或发起新的存储指令(30)的开始。17.根据权利要求13至16中任一项所述的方法,进一步包括:(i)所述操作系统发布所述输入/输出存储指令(30);(ii)系统固件(10)分配空闲输入/输出状态缓冲区索引,如果没有空闲输入/输出状态缓冲区索引可用,则等待空闲输入/输出状态缓冲区索引;(iii)所述系统固件(10)将所述存储指令(30)注入到所述异步发送引擎中;如果被另一个存储指令阻塞,等待直到该存储指令完成;(iv)取决于数据的长度:如果数据的长度超过八个字节,所述系统固件(10)重复发布系统消息以将数据包发送至所述聚合缓冲区(16),直到存储块的所有数据已经被转发至所述聚合缓冲区(16),同时系统固件(10)等待直到数据已经由系统消息发送;否则所述系统固件(10)发布系统消息以将所述数据发送到所述聚合缓冲区(16)∶(v)所述系统固件(10)向所述聚合缓冲区(16)发布系统消息以将所述数据作为单个嵌套消息异步地转发到所述输入/输出总线控制器(20),同时等待所述聚合缓冲区(16)发送完成消息;(vi)所述聚合缓冲区(16)将所述嵌套消息注入到所述系统嵌套(18)中,其中,所述聚合缓冲区(16)刚好在所述发送操作之后空闲以用于重新使用,发信号回所述系统固件(10);然后聚合缓冲区(16)发送空闲供重用消息;(vii)所述系统嵌套(18)将所述消息转发到所述目标位置;(viii)所述输入/输出总线控制器(20)接收所述消息并且将数据帧中的数据转发到所述输入/输出总线;(ix)所述输入/输出总线控制器(20)向所述系统嵌套(18)发送完成消息;(x)所述系统嵌套(18)将所述完成消息转发到所述发起聚合缓冲区(16);(xi)所述聚合缓冲区(16)将完成转发至所述异步内核

嵌套接口(14);(xii)所述异步内核

嵌套接口(14)将所述完成状态存储在所述输入/输出状态缓冲区
(24)中用于所述输入/输出状态缓冲区索引,并且将操作的完成发信号通知给所述系统固件(10);(xiii)所述系统固件(10)通过所述输入/输出状态缓冲区索引来更新输入/输出状态缓冲区跟踪;(xiv)在错误的情况下,所述系统固件(10)将缺陷发信号通知给所述操作系统。18.根据权利要求13至17中任一项所述的方法,进一步,如果数据的长度超过8字节,则由输入/输出存储指令(30)通过具有早期完成消息的异步传输机制在多个数据包中将数据传输到聚合缓冲区(16)。19.根据权利要求13至18中任一项所述的方法,进一步地,该系统固件(10)使用用于处理该输入/输出存储指令(30)的异步输入/输出驱动程序代码(32)。20.根据权利要求19所述的方法,进一步,该内核(12)使用用于处理对该异步输入/输出驱动程序代码(32)的状态信息的存储器要求的异步设置代码(34)。21.根据权利要求13至20中任一项所述的方法,进一步,所述异步内核

嵌套接口(14)使用异步内核

嵌套接口转发组件(36)来转发本地完成的数据。22.根据权利要求13至21中任一项所述的方法,进一步地,所述聚合缓冲区(16)使用早期完成逻辑(26)用于在发送请求之后传送空闲供重用消息。23.根据权利要求13至22中任一项所述的方法,其中,系统消息包括以下之一:

分层物理目标地址,

提供smt线程或聚合缓冲区标识符,

数据的长度,

输入/输出总线地址,

输入/输出状态缓冲区索引。24.一种计算机程序产品,用于处理针对数据处理系统(210)的至少一个外部设备(214)的输入/输出存储指令(30),所述数据处理系统(210)包括:系统嵌套(10),通过输入/输出总线控制器(14)通信地耦合到至少一个输入/输出总线(22),并且,还至少包括数据处理单元(216),所述数据处理单元(216)包括内核(12)、系统固件(10)和异步内核

嵌套接口(14),其中所述数据处理单元(216)经由聚合缓冲区(16)通信地耦合到所述系统嵌套(18),其中,所述外部设备(214)通信地耦合到所述输入/输出总线(22),其中所述异步内核

嵌套接口(14)包括具有多个输入/输出状态缓冲区(24)的输入/输出状态阵列(44)、阵列管理和访问逻辑(46),所述计算机程序产品包括具有体现于其中的程序指令的计算机可读存储介质,所述程序指令可由所述计算机系统(212)执行以致使所述计算机系统(212)执行一种方法,所述方法包括:(i)在所述数据处理系统(210)上运行的操作系统,发布所述输入/输出存储指令(30),其至少指定具有通过地址的偏址、要传送的数据和/或指向要传送的数据的指针以及所述数据的长度的输入/输出函数;(ii)所述数据处理单元(216)被配置以通过在所述输入/输出存储指令(30)中指定的
所述地址来识别所述输入/输出函数;(iii)所述数据处理单元(216)被配置以验证在地址空间上和在客户机实例级别上是否允许访问所述输入/输出函数,所述客户机在所述数据处理系统(210)上运行;(iv)所述数据处理单元(216)被配置以在所述系统嵌套(18)中所述输入/输出存储指令(30)的执行完成之前完成所述输入/输出存储指令(30);(v)所述系统固件(10)被配置得如果在所述输入/输出存储指令(30)的异步执行期间由所述数据处理单元(216)检测到错误,则通过中断、发送所述失败的异步执行的数据,来通知所述操作系统;(vi)所述阵列管理和访问逻辑(46)收集所述存储指令(30)的完成并且基于所接收的完成消息更新所述输入/输出状态缓冲区(24);(vii)所述数据处理单元(216)延迟所述存储指令(30)的执行,直到输入/输出状态缓冲区(24)可用于存储关于待决存储指令(30)的完成的信息。25.一种用于执行数据处理程序(240)的数据处理系统(210),所述数据处理系统包括用于执行根据权利要求13至23中任一项所述的方法的计算机可读程序指令。

技术总结
用于处理输入/输出存储指令(30)的数据处理系统(210)和方法,包括通过输入/输出总线控制器(20)耦合到至少一个输入/输出总线(22)的系统嵌套(18)。数据处理系统(210)进一步至少包括数据处理单元(216),其包括内核(12)、系统固件(10)和异步内核


技术研发人员:C
受保护的技术使用者:国际商业机器公司
技术研发日:2020.01.14
技术公布日:2021/9/6
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1