CN1234550A - 加载/存储协助引擎 - Google Patents

加载/存储协助引擎 Download PDF

Info

Publication number
CN1234550A
CN1234550A CN99104808.3A CN99104808A CN1234550A CN 1234550 A CN1234550 A CN 1234550A CN 99104808 A CN99104808 A CN 99104808A CN 1234550 A CN1234550 A CN 1234550A
Authority
CN
China
Prior art keywords
input
output
architecture
loading
output bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN99104808.3A
Other languages
English (en)
Other versions
CN1234550B (zh
Inventor
P·E·莫瓦尔
C·S·格拉哈姆
D·F·默尔特尔
S·M·兰贝思
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1234550A publication Critical patent/CN1234550A/zh
Application granted granted Critical
Publication of CN1234550B publication Critical patent/CN1234550B/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set

Abstract

一种输入/输出总线体系结构,包括:输入/输出总线;连接在输入/输出总线上的输入/输出设备;连接在输入/输出总线上的主处理器,用于执行对应于该输入/输出设备的设备驱动程序,该设备驱动程序为该输入/输出设备生成加载/存储命令;以及连接在输入/输出总线上并仍独立于主处理器的加载/存储协助引擎,用于按照来自设备驱动程序的加载/存储命令向/自输入/输出设备加载/存储数据。加载/存储协助引擎将主处理器从与加载/存储命令的执行关联的等待时间上解脱开来。

Description

加载/存储协助引孳
本发明涉及输入/输出处理领域,更具体地涉及主处理器外部的输入/输出处理。
输入/输出处理涉及移动数据去往/来自诸如处理器复合体外部的光盘、固定磁盘或软磁盘等非易失性存储设备等设备。原来,输入/输出处理是由处理器复合体处理的。图1为对应于这一情况的硬件图。图1中,处理器复合体102用输入/输出总线104连接在输入/输出适配器106上。加载/存储命令与中断信号108是在处理器复合体102与输入/输出适配器106之间交换的。输入/输出适配器106将输入/输出设备(未示出)连接在输入/输出总线104上。处理器复合体102通常包含处理器(未示出)、存储器控制器(未示出)及总线控制器(未示出)。总线控制器通常生成与管理输入/输出总线上的通信。具体地,总线控制器诸如通过提供从物理输入/输出总线槽到中断位的映射来处理中断管理。
图2描绘与图1对应的功能图。设备驱动程序功能204、协议栈功能206、应用功能208及操作系统服务210是由处理器复合体102执行的,如用虚线框202所示。输入/输出适配功能212是由输入/输出适配器106执行的。
在应用功能208与输入/输出适配功能212之间已描绘了输入/输出请求处理数据流路径216。应用208直接或间接启动输入/输出请求。协议栈206处理这一输入/输出请求,将应用208的通用输入/输出请求转换成诸如盘存储器等外围设备或诸如TCP/IP等通信链路的特定命令协议。协议栈206可使用操作系统210所提供的各种服务。
在诸如图1中的不带外部输入/输出处理的系统中,协议栈206询问操作系统210对设备驱动程序204的链接。一旦得到这一链接,协议栈206便直接调用设备驱动程序204所提供的服务。
设备驱动程序204负责接收来自协议栈206的命令并指令输入/输出适配功能212,即输入/输出适配器106,去执行该命令,设备驱动程序204能直接访问输入/输出适配器106中的所有寄存器并直接从适配器106的寄存器空间(未示出)加载数据或向其存储数据。
图1与2中描绘的情况对于个人计算机(PC)是典型的。输入/输出适配器106完全受处理器复合体102管理,包括编程输入/输出适配器106,使用加载与存储及应答从输入/输出适配器106利用中断或轮询技术送来的服务请求。这种编程与应答已通过信号路径108指示。
以前,处理器复合体周期时间与输入/输出总线速度之间的差异是小的。如果处理器复合体必须等待输入/输出适配器106应答加载或存储命令,等待并不很长,只导致处理器复合体102停顿或不可使用仅少数周期。
随着技术的进步,处理器复合体周期时间降低的程度比输入/输出响应时间大得多。结果,由于在等待输入/输出适配器应答加载或存储命令而停顿所损失的处理器复合体周期时间的数目随着处理器复合体的处理速度快速增长。
作为处理器复合体停顿的实例,考虑在等待时间为300毫微秒(nsec)的本地PCI总线上的外围计算机接口(PCI)输入/输出事务处理及3nsec的处理器周期时间。在这一情况中,处理器将停顿100个周期来执行输入/输出事务处理。如果处理器周期时间降低到1nsec,则处理器复合体将停顿300个周期。作为另一实例,在通过桥接器连接到PCI总线上的远程PCI总线上的PCI输入/输出事务处理的等待时间为2微秒(μsec)而处理器复合体周期时间为3nsec的情况中,处理器复合体浪费666个周期。如果处理器周期时间降至1nsec,则处理器复合体浪费2000个周期。
为了减少由输入/输出命令引起的处理器复合体停顿时间,将处理器复合体编程为在发布输入/输出命令之后去执行其它功能。当输入/输出适配器106最终应答时,它通过提出中断信号来重新获得处理器复合体102的注意。为了服务于该中断,处理器复合体必须存储其关于当前正在执行的进程的内部状态。通常,三或四条加载/存储命令与一个中断关联,而三或四个中断与每一条输入/输出命令关联。从而,虽然利用中断的技术解决了处理器复合体停机问题,但必须执行的中断服务例程消耗了许多处理器复合体的有用工作。
为了解决处理器复合体必须服务于许多中断的问题,将执行设备驱动程序功能及服务于中断的责任从输入/输出适配器转移到处理器复合体外部的输入/输出处理器上。这一情况描绘在图3中,其中将处理器复合体302连接在输入/输出总线304上。还将输入/输出处理器310以及输入/输出适配器306也连接在输入/输出总线304上。处理器复合体302通常包含处理器(未示出)、存储器控制器(未示出)及总线控制器(未示出)。总线控制器生成与管理输入/输出总线304,包含提供从物理输入/输出总线槽到中断位的映射。
图4为对应于图3的功能图。用虚线框402表示的处理器复合体302执行的功能现在只包含操作系统服务406、协议栈408及应用410。设备驱动程序功能416从处理器复合体302移出到输入/输出处理器310,如虚线框404所示,它还包含输入/输出操作系统服务功能414。处理器复合体功能402通过报文协议412与输入/输出处理器功能404通信。输入/输出处理器功能404通过加载/存储命令及中断交换与输入/输出适配功能418通信,如条目420所示。
和前面一样,在应用功能410与输入/输出适配功能418之间已描绘了输入/输出请求处理数据流路径422。应用410直接或间接启动输入输出请求。协议栈408处理这一输入/输出请求,将通用输入/输出请求转换成诸如盘驱动器存储器等外围设备或诸如TCP/IP等通信链路的特定命令协议。协议栈408可利用操作系统406所提供的各种服务。
协议栈408查询操作系统406对设备驱动程序416的连接。这一连接允许命令与应答报文在协议栈408与设备驱动程序416之间流动。一旦建立了这一连接,协议栈408便通过操作系统服务406发送命令报文给设备驱动程序416。
操作系统服务402传送及接收从协议栈408到输入/输出操作系统服务414的命令与应答报文。输入/输出操作系统服务向或自设备驱动程序416传送接收这些报文。对于每一个操作,利用操作系统服务406及输入/输出操作系统服务414来传送命令与应答。
设备驱动程序416负责接收来自协议栈408的命令并指示输入/输出适配器306去执行该命令。通常,设备驱动程序416能直接访问输入/输出适配器306中的所有寄存器(未示出)及直接加载或存储数据,即读或写数据到输入/输出适配器306的寄存器空间。作为替代,可将一部分协议栈408实现为输入/输出操作系统服务的一部分。
图3-4对于PC服务器是典型的。已增加了输入/输出处理器310来从处理器复合体302卸载输入/输出适配器306的控制。这一卸载是用信号路径308及312表示的。信号路径308表示按照处理器复合体302与输入/输出处理器310之间的报文协议交换加载/存储命令及中断信息。信号路径312表示在输入/输出处理器310与输入/输出适配器306之间发布加载/存储命令及中断形式的应答。作为可选择的方面,处理器复合体302能保留设备驱动程序功能,如在图1-2中,并直接与输入/输出适配器306通信,如用信号路径314所表示的。
当开始采用这一体系结构时,输入/输出处理器310服务来自与各输入/输出命令关联的输入/输出适配器306的3或4个中断。而输入/输出处理器310每一条输入/输出命令只对处理器复合体302生成一个中断。从而,不再损失处理器复合体302的许多有用工作来为其余2或3个中断服务。
输入/输出处理中的另一种趋势为使输入/输出适配器每一条输入/输出命令生成一个中断而不是三或四个中断。结果,输入/输出处理器只须服务于来自一个输入/输出适配器的一个中断请求。然后输入/输出处理器310必须发布其自己的中断请求到处理器复合体302。从而,不再一定是处理器复合体302正服务于比输入/输出处理器310少的中断。采用输入/输出处理器的优点现在成为它们能从与发布加载/存储命令给输入/输出适配器及等待来自输入/输出适配器的典型的单中断请求应答相关联的等待时间中将处理器复合体脱离开来。
如在计算机技术领域中典型的,输入/输出适配器技术中的变化迅速地出现。这一变化可能是以太网卡的带宽从10兆位增加到100兆位。为了适应这一变化,必须使处理器复合体及输入/输出处理器两者都适应。从而,必须设计与支持两个独立的修正版本。更可能的是,还必须开发两组独立的诸如编译程序、调试程序等开发工具。这种双重开发是昂贵的。
本发明部分地基于这样的认识,即为了输入/输出数据,输入/输出处理器必须减少处理器复合体必须服务的中断数目不再是必须的。
本发明还部分地基于这样的认识,即如果将输入/输出处理器的设备驱动程序功能从输入/输出处理器的输入/输出适配器交互作用功能分离并移回到处理器复合体中,则可以消除双重开发成本。
本发明提供经济的协处理器,称作加载/存储协助引擎,它是在处理器复合体外部的并协助执行寄存器加载与存储操作。加载/存储协助引擎采用高性能的基于报文的设施,即报文协议,来与主机通信。为了令加载/存储协助引擎执行对输入/输出适配器的加载与存储,这一协议要求处理复合体不执行加载及执行非常少的,诸如三个不停顿与不同步的存储。这解放了处理器复合体去执行有用的工作而不是停顿等待加载/存储完成,即等待输入/输出适配器应答。
本发明的目的为提供输入/输出(I/O)总线体系结构,包括:
输入/输出总线;连接在所述输入/输出总线上的输入/输出设备;连接在所述输入/输出总线上用于执行对应于所述输入/输出设备的设备驱动程序的主处理器,所述设备驱动程序为所述输入/输出设备生成加载/存储命令;以及加载/存储协助引擎,连接在所述输入/输出总线上并仍独立于所述主处理器,用于按照来自所述设备驱动程序的所述加载/存储命令加载/存储去往/来自所述输入/输出设备的数据,使所述加载/存储协助引擎将所述主处理器从与所述加载/存储命令关联的等待时间上分离。
从此后给出的详细描述中本发明的进一步可应用范围将是显而易见的。然而,应理解,详细的描述与特定实例虽然指示本发明的较佳实施例,只是以示例方式给出的,因为从该详细描述中,对于熟悉本技术者在本发明的精神与范围内的各种改变与修正是显而易见的。
从下面给出的详细描述与附图中可以更全面地理解本发明,它们只是以示例的方式给出的,从而不是限定本发明的,附图中:
图1为描绘第一先有技术输入/输出处理体系结构的硬件图;
图2为对应于图1的先有技术功能图;
图3为第二先有技术输入/输出处理体系结构的硬件图;
图4为对应于图3的先有技术功能图;
图5为按照本发明的输入/输出处理体系结构的硬件图;
图6为本发明的功能图,其中图6对应于图5;以及
图7为并排地比较先有技术与本发明的加载/存储协助引擎的表。
传统上,已促使计算机输入/输出体系结构的设计人员将处理责任从处理复合体卸载到附着在输入/输出总线上的本地处理器上。本发明反映这样的认识,即支持输入/输出体系结构的传统设计观点的因素已经改变,诸如输入/输出命令现在通常需要一个中断来服务而不是三或四个。此外,外围设备与它们所关联的输入/输出适配器的改进,即变化的速度已使得更新输入/输出处理器以及处理复合体以便它们能全面地从外围设备的改进中得益的双重开发成本成为十分巨大。本发明反映了这样的认识,即逆转先有技术减轻处理器复合体的负担的趋势现在已经有利。本发明为将某些处理责任,如设备驱动程序,加载回到处理器复合体上的反映。
图5为按照本发明的输入/输出处理体系结构的硬件图。图5中,较佳地将处理器复合体502连接在存储器映射的输入/输出总线上,例如PCI总线。处理器复合体502可包含处理器(未示出)、存储器控制器(未示出)及总线控制器(未示出)。将加载/存储协助引擎508及输入/输出适配器506各连接在输入/输出总线上。输入/输出适配器506类似于或等效于先有技术输入/输出适配器。图5的信号路径510表示处理器复合体502与加载/存储协助引擎508之间利用诸如报文传送机制等报文协议的加载/存储命令与中断的通信,报文传送机制为Nordstrom等人的名为“报文传送机制”的1997年10月15日提交的相关的共同未决美国专利申请序号08/950,593的主题,通过引用将序号08/950,593的全部内容结合在此。
图5中的指令路径512从加载/存储协助引擎508到输入/输出适配器506。中断信号路径514从输入/输出适配器506到处理器复合体502。此外,命令不是通过加载/存储协助引孳508从处理器复合体502流到输入/输出适配器,而是处理器复合体502能在处理器复合体502与输入/输出适配器507之间在诸如双向指令与中断信号路径516上直接通信。
图5中还作为集成的加载/存储协助引擎与桥接器518描绘了加载/存储协助引擎508的替代品。该引擎与桥接器518将输入/输出总线504连接到另一输入/输出总线520上,后者上面附着有分别对应于输入/输出适配器506与507的输入/输出适配器524与525。
图6为对应于图5的硬件图的本发明的功能图。图6中,处理器复合体502所执行的功能用虚线框602指示并包含操作系统服务604、协议栈608及应用610。此外,在先有技术趋势的逆转中,本发明反映了已将执行设备驱动程序功能606的责任返回给处理器复合体502,从而将它描绘在虚线框602中。加载/存储协助功能612是独立于处理器复合体功能602或在其外部的。输入/输出适配功能614与615分别对应于图5的输入/输出适配器506与507。图5的指令信号路径510对应于将应用功能610连接在加载/存储协助功能612上的信号路径616及报文协议路径618。图5的命令信号路径512对应于图6的加载/存储命令信号路径622。图5的中断信号路径514对应于图6的中断信号路径624。将信号路径616与618连接在节点617上。图5的另一命令信号路径516对应于图6的信号路径616与620,如连接在节点617上的。
为了简明起见,已省略了对应于集成的加载/存储协助引擎与桥接器518及输入/输出适配器524与525的功能图,因为它们十分类似于图6的功能图及其中的对应讨论。
处理器复合体502的总线控制器(未示出)生成与管理输入/输出总线504。总线控制器(未示出)通常包含用于提供从物理输入/输出总线槽到中断位的映象的中断管理功能。本发明假定输入/输出总线504传输加载/存储去往/来自处理器复合体502并能传输中断到处理器复合体502,来控制去往/来自输入/输出适配器506-507与/或加载/存储协助引擎508的命令与数据流。
输入/输出适配器506与507受到处理器复合体502的逻辑管理。其中包含编程输入/输出适配器、在输入/输出适配器506的情况中通过加载/存储协助引擎508发布加载与存储及采用中断或轮询技术响应来自输入/输出适配器的服务请求。
在操作中,应用610直接或间接启动输入/输出请求。通过协议栈608处理这一输入/输出请求,它将通用输入/输出请求转换成用于诸如盘驱动器存储器或其它远程存储器等外围设备或诸如TCP/IP等通信链路的特定命令协议。协议栈可利用操作系统所提供的各种服务。
协议栈608为链接到设备驱动程序606上查询操作系统604。一旦获得了这一链接,协议栈608便直接调用设备驱动程序606提供的服务。
设备驱动程序606负责接收来自协议栈608的命令并指令输入/输出适配614去执行该命令。当利用加载/存储协助功能612时,设备驱动程序606不能直接访问输入/输出适配615中的寄存器空间(未示出),而是利用操作系统服务来执行对输入/输出适配615的寄存器空间(未示出)的加载或存储操作。以这一方式,操作系统604发送加载与存储命令表给加载/存储协助功能612供在与输入/输出适配器506相关联的高等待时间的情况中处理。加载/存储协助功能612接收加载与存储命令表,通过发送给输入/输出适配器614或从其接收而处理它们,并在加载命令的情况中将加载数据返回给操作系统604。将输入/输出适配功能614的控制流中的诸如生成中断等任何变化直接选择路由到处理器复合体502而不是经由加载/存储协助612。
加载/存储协助引擎508是用诸如编程的处理器、可编程逻辑阵列或对应于编程的处理器的应用特定的集成电路实现的。为了产生采取编程的处理器的形式的加载/存储协助引擎508而从先有技术输入/输出处理器310中消除设备驱动程序功能完全是输入/输出处理器技术中的普通技术水平内的事情。再者,一旦确定了对应的编程的处理器的代码,编程可编程的逻辑阵列是简单的事情。然而,直到编程的处理器的代码已经是适用的从而修订的概率是低的为止,采用可编程的逻辑阵列而不用编程的处理器来实现加载/存储协助引擎不是成本高效的。
简要地回顾本发明的替代实施例,桥接器将第一输入/输出总线连接到第二输入/输出总线上。当第一与第二总线相同时,桥接器提供额外的扇出,从而作为完善的缓冲器或再驱动设备工作。当第一输入/输出总线与第二输入/输出总线不同时,桥接器作为两条总线之间的转换器工作。在本发明的替代形式中,即集成的加载/存储协助引擎与桥接器518的形式中,在输入/输出总线520与输入/输出总线504相同,诸如PCI总线的情况中,桥接器部分作为再驱动设备工作,或者在输入/输出总线520与输入/输出总线504不同,诸如扩展的工业标准体系结构总线的情况中,桥接器部分作为转换器工作。因为输入/输出适配器524与525分别对应于输入/输出适配器506与507,输入/输出适配器524与525的信号路径对应于路径510、512、514,并为了简单起见已从图5中省略。
存在着具有非常低的等待时间的某些外围设备。这些设备说明通过输入/输出适配器507连接在输入/输出总线504上是合理的。这一替代认识到存在着采用加载/存储协助引擎关联的一些性能代价或开销。当通过输入/输出适配器507的直接连接至少产生与采用加载/存储协助引擎508相当的性能时,绕过加载/存储协助引擎508是值得的。
绕过图6的加载/存储协助功能612的判断是独立于设备驱动程序606作出的,即这是在设备驱动程序结束了发送给外围设备的通信之后由操作系统服务604之一在节点617上作出的。一旦设备驱动程序调用操作系统服务604,设备驱动程序假定其命令将被投送给外围设备但并不关心用什么路径投送命令。
为了启动加载/存储命令,处理器复合体502发布中断给加载/存储协助引擎508以便发送加载/存储命令给它。在加载命令的情况中,处理器复合体提供目标地址与指令码,即二元组,给加载/存储协助引孳508。在存储命令的情况中,处理器复合体502提供目标地址、指令码及数据,它们一起称作三元组,给加载/存储协助引擎508。然而,不提供外围设备特定的信息给加载/存储协助引擎508。作为替代,可向加载/存储协助引擎508提供一串加载/存储命令而不是一条。加载/存储协助引擎508直接执行来自/去往输入/输出适配器506的寄存器空间的数据的加载/存储,如处理器复合体502所指定的。在完成了加载/存储命令或加载/存储命令串时,加载/存储协助引擎508生成中断到处理器复合体502,并为加载命令提交任何检索到的数据。
通过来自加载/存储协助引擎508的一系列加载与存储指令输入/输出设备506被指示去执行I/O操作。在与输入/输出适配器506连接的外围设备(未示出)的基本操作关联的延时之后,操作便将完成。在一些上下文中,可从输入/输出适配器506向处理器复合体502生成中断来通知它已执行了I/O操作。从而,为了利用加载/存储协助引擎执行某些设备操作,处理器复合体502有必要发布一个中断及服务其它两个中断,一个来自加载/存储协助引擎508而一个来自输入/输出适配器506。
与图1-2中其中处理器复合体102处理所有输入/输出处理的先有技术对比,本发明的处理器复合体,即502,除了来自输入/输出适配器506的中断之外还必须处理来自加载/存储协助引擎的中断。然而,处理器复合体502服务附加的中断所需的时间明显地小于先有技术图1的处理器复合体102停顿等待输入/输出适配器106响应加载命令返回数据期间流逝的时间。此外,随着处理器性能的提高,与处理器复合体必须服务的附加的中断关联的时间损失越来越小。此外,可以通过成批处理或组合这些中断来减少服务这些中断以及数据与指令高速缓冲存储器的相关反复的时间损失。这一成批处理是Nordstrom等人的名为“中断与报文成批处理装置与方法”的1997年10月15日提交的相关共同未决美国专利申请序号08/950,755的主题,通过引用将序号08/950,755的全部内容结合在此。
图7为列出提供关于哪些结构执行这些功能的先有技术与本发明之间的并排比较的输入/输出处理期间所执行的功能表。再者,本发明的加载/存储协助功能表示对输入/输出处理技术中的设计考虑的重新思考。
本发明的加载/存储协助引擎与外部输入/输出处理相比有许多优点。所有设备驱动程序与协议栈代码是在一个处理器而不是两个处理器中运行的。结果,在诸如编译程序及调试程序等的设计、支持、开发工具方面适应/开发输入/输出体系结构比较简单,因为只涉及单一开发而不是双重开发。这允许更好地利用高速缓冲存储器。除了需要少量附加代码来运行嵌入加载/存储协助引擎的服务之外,只分别需要一组设备驱动程序与协议栈而不是两组。此外,还具有这样的优点,即与外部输入/输出处理器相比,只需要操作系统服务中非常有限的路径长度来执行输入/输出操作。减少了执行诸如格式化等要求的工作所必需的指令数目。
相对于直接输入/输出处理,即完全由处理器复合体执行,本发明的加载/存储协助引擎具有处理器复合体不遭受与访问输入/输出适配器关联的长的等待时间的优点。结果,处理器复合体不需停顿等待来自输入/输出适配器的要完成的应答,使处理器复合体可用于其它工作。
相对比,本发明的加载/存储协助引擎消除了停顿的处理器周期来交换服务与之关联的附加中断所需的少数处理器复合体周期。必须服务的附加中断增加了与加载/存储协助引擎关联的处理器复合体的响应时间,但是,由于消除了极大数量的浪费的周期,加载/存储协助引擎的使用极大地提高了处理器复合体的吞吐量。在将一串加载/存储命令发送给加载/存储协助引擎的情况中,每一条加载/存储命令的开销降低得更多。
虽然已详细描述与展示了本发明,清楚地理解,这只是以展示与示例方式,而不是以限定方法作出的,本发明的精神与范围只受所附的权利要求书限定。

Claims (15)

1.一种输入/输出总线体系结构,包括:
输入/输出总线;
连接在所述输入/输出总线上的输入/输出设备;
连接在所述输入/输出总线上的主处理器,用于执行对应于所述输入/输出设备的设备驱动程序,所述设备驱动程序为所述输入/输出设备生成加载/存储命令;以及
连接在所述输入/输出总线上并仍独立于所述主处理器的加载/存储协助引擎,用于按照来自所述设备驱动程序的所述加载/存储命令,自或向所述输入/输出设备加载或存储数据,使所述加载/存储协助引擎将所述主处理器从与所述加载/存储命令的执行关联的等待时间上解脱开来。
2.权利要求1的体系结构,其中所述输入/输出设备包括外围设备及将所述外围设备连接到所述输入/输出总线上的输入/输出适配器。
3.权利要求1的体系结构,其中所述加载/存储协助引擎为编程的处理器。
4.权利要求1的体系结构,其中所述加载/存储协助引擎为可编程的逻辑阵列。
5.权利要求1的体系结构,其中:
所述输入/输出总线为第一输入/输出总线;
所述体系结构还包括第二输入/输出总线及用于将所述第一输入/输出总线接口到所述第二输入/输出总线上的主桥接器;以及
所述主桥接器与所述加载/存储协助引擎是集成为单一设备的。
6.权利要求5的体系结构,其中所述第二输入/输出总线与所述第一输入/输出总线不同。
7.权利要求1的体系结构,其中:
所述输入/输出设备为第一输入/输出设备及所述设备驱动程序为第一设备驱动程序;
所述体系结构还包括第二输入/输出设备;
所述主处理器可进行操作来执行对应于所述第二输入/输出设备的第二设备驱动程序及为其生成加载/存储命令;以及
所述加载/存储协助引擎可进行操作按照来自所述第二设备驱动程序的所述加载/存储命令来加载/存储去往/来自所述第二输入/输出设备的数据。
8.权利要求1的体系结构,其中所述输入/输出总线为存储器映射的总线。
9.权利要求8的体系结构,其中所述输入/输出总线为PCI总线。
10.权利要求1的体系结构,其中将所述输入/输出总线配置成从所述输入/输出适配器传送中断信号给所述主处理器。
11.权利要求1的体系结构,其中所述主处理器还能进行操作来执行其操作系统。
12.权利要求11的体系结构,其中所述主处理器还能进行操作来执行协议栈。
13.权利要求12的体系结构,其中所述主处理器还能进行操作来执行应用程序。
14.权利要求11的体系结构,其中所述操作系统能进行操作选择通过所述主处理器与所述外围设备之间的直接路径或通过包含所述加载/存储协助引擎的间接路径来访问输入/输出适配器,使所述操作系统独立于所述设备驱动程序作出选择。
15.权利要求1的体系结构,其中所述加载/存储协助引擎与所述主处理器利用报文协议在所述输入/输出总线上通信。
CN99104808.3A 1998-05-06 1999-04-05 一种输入/输出总线系统 Expired - Lifetime CN1234550B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/072740 1998-05-06
US09/072,740 US6219761B1 (en) 1998-05-06 1998-05-06 Load/store assist engine

Publications (2)

Publication Number Publication Date
CN1234550A true CN1234550A (zh) 1999-11-10
CN1234550B CN1234550B (zh) 2010-06-02

Family

ID=22109473

Family Applications (1)

Application Number Title Priority Date Filing Date
CN99104808.3A Expired - Lifetime CN1234550B (zh) 1998-05-06 1999-04-05 一种输入/输出总线系统

Country Status (3)

Country Link
US (1) US6219761B1 (zh)
JP (1) JP4012338B2 (zh)
CN (1) CN1234550B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6931473B2 (en) * 2002-07-16 2005-08-16 International Business Machines Corporation Data transfer via Host/PCI-X bridges
US7698361B2 (en) * 2003-12-31 2010-04-13 Microsoft Corporation Lightweight input/output protocol
KR20090103070A (ko) * 2008-03-27 2009-10-01 삼성전자주식회사 멀티 링크 아키텍쳐에서 저장 상태정보의 다이렉트전송기능을 갖는 멀티 프로세서 시스템
US10776125B2 (en) * 2018-12-05 2020-09-15 Apple Inc. Coprocessor memory ordering table

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5251322A (en) * 1987-08-13 1993-10-05 Digital Equipment Corporation Method of operating a computer graphics system including asynchronously traversing its nodes
US5283900A (en) * 1989-10-02 1994-02-01 Spectron Microsystems, Inc. Real-time operating system and virtual digital signal processor for the control of a digital signal processor
US5293606A (en) * 1991-04-02 1994-03-08 Commodore Electronics Limited Apparatus and method for transferring interleaved data objects in mass storage devices into separate destinations in memory
US5524233A (en) * 1993-03-31 1996-06-04 Intel Corporation Method and apparatus for controlling an external cache memory wherein the cache controller is responsive to an interagent communication for performing cache control operations
US5615392A (en) * 1995-05-05 1997-03-25 Apple Computer, Inc. Method and apparatus for consolidated buffer handling for computer device input/output
US6055583A (en) * 1997-03-27 2000-04-25 Mitsubishi Semiconductor America, Inc. DMA controller with semaphore communication protocol

Also Published As

Publication number Publication date
JPH11328083A (ja) 1999-11-30
JP4012338B2 (ja) 2007-11-21
US6219761B1 (en) 2001-04-17
CN1234550B (zh) 2010-06-02

Similar Documents

Publication Publication Date Title
US6954806B2 (en) Data transfer apparatus and method
US6421742B1 (en) Method and apparatus for emulating an input/output unit when transferring data over a network
US6338102B1 (en) Efficient data transfer mechanism for input/output devices having a device driver generating a descriptor queue and monitoring a status queue
US5428799A (en) Redirection of interrupts to microprocessors
US8972699B2 (en) Multicore interface with dynamic task management capability and task loading and offloading method thereof
US6868087B1 (en) Request queue manager in transfer controller with hub and ports
CN100412847C (zh) Rdma完成和重传系统以及方法
CN1279789A (zh) 由处理器本机总线承载的dma飞越成组传送
CN101034384A (zh) 一种能同时进行读写操作的dma控制器及传输方法
CN1499379A (zh) 针对异构体系结构的在集成可执行程序内进行覆盖管理的方法和设备
JPH0926929A (ja) 効率のよいデータ転送メカニズムに関する方法及び装置
US20220365892A1 (en) Accelerating Method of Executing Comparison Functions and Accelerating System of Executing Comparison Functions
CN1658176A (zh) 数据通信的方法及设备
US7913059B2 (en) Information processing device, data transfer method, and information storage medium
JP2002544585A (ja) ホストプロセッサに対して可変幅インタフェースを有するfifoシステム
CN100451952C (zh) 多阶层加速器架构的处理器系统及其操作方法
GB2377138A (en) Ring Bus Structure For System On Chip Integrated Circuits
CN1234550B (zh) 一种输入/输出总线系统
KR19990023208A (ko) 듀얼 프로세서 모드 메모리 컨트롤러
CN1464415A (zh) 一种多处理器系统
CN1452355A (zh) 具有上位和下位总线、控制网络中数据访问的微机系统
US6243767B1 (en) System for register partitioning in multi-tasking host adapters by assigning a register set and a unique identifier in each of a plurality of hardware modules
CN113434441A (zh) 一种dma传输方法、装置、控制器及可读存储介质
US6134623A (en) Method and system for taking advantage of a pre-stage of data between a host processor and a memory system
CN1783840A (zh) 流量控制单元及其执行方法

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20100602