CN1054160A - 通信接口适配器 - Google Patents

通信接口适配器 Download PDF

Info

Publication number
CN1054160A
CN1054160A CN91100567A CN91100567A CN1054160A CN 1054160 A CN1054160 A CN 1054160A CN 91100567 A CN91100567 A CN 91100567A CN 91100567 A CN91100567 A CN 91100567A CN 1054160 A CN1054160 A CN 1054160A
Authority
CN
China
Prior art keywords
task
port
list item
adapter
scheduled
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
CN91100567A
Other languages
English (en)
Other versions
CN1021536C (zh
Inventor
约翰·图尔曼·阿德金斯
詹姆斯·斯坦利·波格塞尔斯基
贾克兰·海格修斯·威尔森
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 CN1054160A publication Critical patent/CN1054160A/zh
Application granted granted Critical
Publication of CN1021536C publication Critical patent/CN1021536C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/38Information transfer, e.g. on bus
    • 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/122Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Bus Control (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Multi Processors (AREA)

Abstract

一种串行通信适配器向物理通信端口提供一个 接口。在该适配器上执行的一个调度程度调度不同 优先级上的任务,使得时间性关键的任务足够快地被 执行以防止数据丢失。要通过一个通信端口发送或 接收的数据是存储在适配器上的缓冲器中的,并且在 该适配器与宿主系统之间的数据与命令通信是很好 地在一条DMA通道上执行的。

Description

本发明一般涉及数字计算机系统,更具体地涉及用于以串行通信线路与宿主计算机系统进行接口的子系统。
对于现代计算机系统,与外部世界的通信是至关重要的。某些系统具有若干同时操作的串行通信链路。控制多条同时操作的链路能增加系统处理器的需求而降低总的系统性能。
对这一性能问题的一种解决方法是采用“聪明”的通信适配器。这些适配器处理一次通信对话的所有低级细节。适配器在与它们的宿主系统通信时以相对大的块传送数据。无论接收的数据还是要发送的数据都是采用块传送方式在适配器与宿主系统之间传送的。直接存储器存取(DMA)可用于这种传送以进一步减轻加在宿主中央处理器上的处理负担。
为了在仅有有限数量适配器的一个系统中提供多个通信端口,若干个端口可以设置在单个适配器上。然而,这一方法可能导致明显的问题。对若干独立端口的数据与命令处理可能变得相当复杂,尤其是在高通信率时。当不同的速度与协议使用在不同的通信端口上时,这一问题便大为恶化。使得适配器难于保证所有的通信端口都能以适时方式处理。
提供一种能够处理多个独立端口而不丢失数据的适合于用作通信端口适配器的系统将是令人满意的。
因而,本发明的目的之一便是提供一种适合于在一台宿主计算机系统中用作一个通信端口适配器的系统。
本发明的另一个目的是提供这样一种系统,其中在单个适配器上支持多个通信端口,以及其中各端口互相独立地操作。
本发明的又一目的是提供这样一种系统,其中的通信端口是以这样一种方式被处理的,使得在任何端口上都保证不丢失数据。
所以,根据本发明,一种串行通信适配器提供对物理通信端口的一个接口。在适配器上执行的一个调度程序调度不同优先级的任务,使得时间性要求高的任务得到足够快速的执行以防止数据丢失。通过一个通信端口将要发送的或已经接收到的数据是存储在适配器上的缓冲器中的,而适配器与宿主系统之间的数据与命令通信则是较佳地通过一条DMA通道完成的。
本发明据信为新颖特征的性质在所附的权利要求书中列举。然而,发明本身,以及作为一种较佳的使用方式及其其它的目的和优点则可以结合附图参照对一个示例性实施例的以下详细说明得到最好的了解,附图中:
图1是一台宿主计算机系统的块图;
图2是用于图1中的系统的一个较佳串行通信适配器的块图;
图3示出了按照本发明的一个较佳调度程序工作表;
图4是一组展示在一个较佳适配器系统上执行任务与中断的流程图;
图5示出了包含在一个较佳适配器上的一个存储器的内容;以及
图6至图12为展示按照本发明所能调度的被选中的功能的操作的流程图。
参见图1,参考号10指示一台一般称为宿主系统的计算机系统。系统10包含连接在一条系统总线16上的一个中央处理器12及一个主存储器14。一个或多个用户接口输入/输出设备18也连接在总线16上。这些用户接口设备18中典型地包括一台显示器与键盘,且通常包含一个指示设备诸如一个鼠标。
一个大容量存储器输入/输出设备20也最好连接在总线16上,並将一个或多个大容量存储器设备与系统10接口。这些设备典型地包括磁盘或光盘驱动器。某些系统並不包含这些大容量存储器设备20,而依靠连接在一个网络上的远程大容量存储器。用于串行输入/输出设备的一个适配器22最好连接在系统总线16上。在一个较佳实施例中,这一适配器22提供系统10与多个串行通信端口之间的通信。如本技术领域内所知,各种其它设备也可包括在系统10中。
图1中的系统示出了所有的输入/输出设备为连接在主系统总线16上的。许多高性能系统在中央处理器12与主存储器14之间提供一条高速总线。在这种系统中,一个输入/输出控制器(未示出)连接在高速总线上,並且再通过一独立的输入/输出总线(未示出)连接到各种输入/输出设备18、20、22。在这些系统中,主存储器14与各种输入/输出设备之间的数据传送是经由並受控于该输入/输出控制器的。下述多端口串行适配器在两种系统中都能工作得一样好。只需要向适配器与总线之间提供一个容许在许多不同类型的计算机系统中使用的适当的接口便可。
参见图2,其中示出了一个较佳串行输入/输出适配器22。适配器22是通过一个系统总线接口24与系统总线16相连的。接口24连接到一条适配器总线26上,这是一条高速总线。同时连接到适配器总线26上的有一台中央处理器26与一个适配器存储器30。中央处理器28可以是市场供应的微处理器,诸如英特尔(INTEL)80186处理器。适配器存储器30是本领域内已知的计算机系统存储器,並使其容量足以支持下述功能。在正常的应用中,512K字节的适配器存储器30足供四个通信端口使用。中央处理器28用存储在存储器30中的程序执行适配器22的功能。
同时连接在适配器总线26上的有四个串行端口接口32、34、36和38。虽然在图2中只示出了四个端口,需要时在一个适配器上可包括更多的端口。一个适配器卡22上所能包含的端口数只受服务于端口所能利用的处理能力以及适配器卡22上所能设置的物理端口引线数的限制。
在适配器总线26上连有一个串行端口DMA控制器40,用于控制端口32、34、36、38与适配器存储器30之间的DMA传送。每一端口有两条直接与DMA控制器40相连的信号线用于指示什么时候在一个接受缓冲器中已经有了数据以及什么时候一个发送缓冲器已可用于接收数据。DMA控制器40使用这些信号来确定什么时候在一个通信端口与适配器存储器30之间启动一次DMA传送。
为了实行DMA传送,DMA控制器40与系统总线接口24两者都能作为适配器总线26的总线主。系统总线接口24与DMA控制器40采用DMA向适配器存储器30传送数据和接收来自适配器存储器30的数据。此外,接口24也能成为系统总线16的一个总线主,並使用一条DMA通道向主存储器14传送数据和接受来自主存储器14的数据。在这里所描述的实施例中,系统总线接口24使用单一的DMA通道来为所有的通信端口32、34、36和38传送数据。
为了控制适配器22的操作,中央处理器28执行若干下面将要说明的不同例行程序。具有显著重要作用的是一个任务调度程序,它确定下一个要执行的是哪一个任务。中央处理器28执行各种例行程序来建立通过系统总线接口24去往和来自系统总线16的DMA传送,建立适配器存储器30与通信端口之间的发送与接收操作,以及处理各种错误状态。
图3示出了能很好地用于在适配器上调度任务的一个调度程序工作表50。不同的任务在不同的优先级上操作,图3中示出了优先级0-6。实际使用的优先级数可根据满足特定实现的需要而变化。优先级0为最高优先级,而优先级6为最低优先级。
每一个优先级有一个表项用来指示等待执行的那些任务。优先级1-6各由一个位示图组成,位示图中每一项对应于在适配器上的每一个通信端口。如果任一特定位为1,对应的端口调度对应任务。
调度程序工作表50中的位是由各中断处理程序或执行中的任务设置的,如下面将详细说明的。当出现一个硬件中断时,适当的处理程序确定需要调用哪一个例行程序来处理它,並以在调度程序工作表50中设置一位来调度这一例行程序。当一个例行程序执行时,它能以在表50中设置位来调度其它例行程序,而一般将以复位其本身的位来解除调度它自己。
最高优先级,级0,用作指示该优先级的当前受调度的任务的数目的一个计数器。这一操作上的差别将在下面详细说明。在某些实现中,可能要求以这一方式使用其它的优先级或者根本不用这种方式。
最高优先级是执行系统总线DMA传送的任务。每当一个任务要求执行系统总线DMA时,便将级0计数器增加1並在存储器30中的一张表中放置必要的标识信息。由于只有单一的系统总线DMA通道可资利用,在任何给定的时刻只能有一个系统DMA任务能够操作。任何剩下的任务在它们能够被执行以前只能等待当前执行中的系统DMA任务完成后才能执行,当一个系统总线DMA任务在执行时,其它任务可以在适配器上执行,下面将对此进行说明。
当从一个通信端口上接收到一帧时便调用级1的任务,並必须采用各种步骤来检验所接收的帧的有效性。接收数据任务使被接收的帧受到检验,並标明一切错误。接收数据任务也调度一次系统总线DMA传送将接收到的帧传送给宿主机。
下一优先级任务,级2,是发送数据任务。这一任务启动从适配器存储器30到适当通信端口的数据传送。当组合成了一帧用于通过一个端口进行通信的数据时或前一帧完成发送时便调度一次发送数据任务。
级3任务是一个错误/状态任务,每当在一个通信端口上出现一个错误时被调用。在这一任务所处理的错误类型中最好包括线路错误,诸如控制信号的意外改变以及数据传输错误。
在下面将要描述的环境中,正在发送或接收数据的一个端口所生成的各种事件必须进行排队等待以后处理。级4是一个处理端口应答队列中的项的任务。以同样的方式,级5是一个任务,它处理已经在排队等待着处理的发往一个端口的命令。利用端口应答队列与端口命令队列使得各种处理不必等待通信端口完成其当前操作便得以执行。例如,命令可以在宿主系统方便时送往一个端口,而它们将位于队列中直到它们能够作用在端口上。进来的事件被存放在端口应答队列中直到它们能被适配器22上的中央处理器28处理为止。
最低优先级,级6,用于唤醒休眠中的任务。有时,有必要将一个任务的操作挂起直到一个予定的事件出现。可以令这一任务休眠,如下面将要描述的,並将保持在挂起中。当予定的事件出现时,与该事件相关的一个中断处理程序调度端口应答队列任务,后者又将调度程序工作表50级6的适当位设置为1。当唤醒任务被选中为该端口执行时,被挂起的任务恢复执行。
图4(a)、4(b)与4(c)示出调度与执行任务的方式。参见图4(a),可以看到调度程序是在一个无穷循环中执行。一个当前选中的任务,或进程,在60中执行到完成。当该任务的执行完成时,调度程序在62选择具有任何被调度的任务的最高优先级。然后,在该优先级中,调度程序选择一个任务去执行。如果在被选中的优先级中具有一个以上要调度执行的任务,则采用轮转法来确定下一个要执行的任务。这便保证了所有端口都是平行对待的,使在任何给定的优先级上没有一个端口一直要等到所有其它端口上同一优先级的被调度的任务受到服务以后才会有一个任务被执行。任务一经选定,控制便返回步骤60去执行选定的任务。
步骤62与64操作得非常快,並最好是使其不能被中断的。这是因为各种可能出现的中断通常通过更新调度程序工作表50来调度任务,而这一操作将会干扰步骤62与64中的选择过程。步骤60中的进程执行是可中断的,而系统及通信端口生成的各种硬件中断则被用于调度调度程序工作表50中的其它任务。
图4(b)示出了处理一个中断的总的方法。当在适配器22上出现一个硬件中断时,中央处理器28的控制被矢量指向一个总的中断例行程序。这一例行程序标识在66出现的中断的性质,並使适当的中断处理程序在68执行。在步骤68中执行的中断处理程序最好是非常短的,並且是不允许被中断的。它一般要清除中断的原因,将一个或两个数据项复制到能够被一个正常地被调度的任务所寻访到的一个适当区域中,並在70更新调度程序工作表使得该适当的任务受到调度。从而,当一个任务正在步骤60中执行时,附加的任务在工作表50中被执行的各种中断处理程序所调度。
当各种任务是不可剥夺优先权的时,便使用图4(b)中的方法。换言之,一个执行中的任务在其它任务被调度程序初始化以前完成。由于绝大多数任务相当短,这在大多数系统中不存在问题。然而,如果需要,可以使各种任务成为  可剥夺优先权的。如果这样做的话,由一个中断调度一个较高优先级的任务导致当前任务的执行被挂起而立即执行该较高优级的任务。在这一情况中的中断处理的流程图出在图4(c)中。
当出现一个硬件中断时,该中断的性质在72被标识並在74执行一个适当的中断处理程序。和前面一样,执行中断处理程序使得调度程序工作表50在76被更新。然后在78检验是否已经调度了比当前正在执行的任务更高优先级的工作。如果在80判定未曾调度一个较高优先级的任务,恢复执行当前任务。如果在74执行中断处理程序的过程中调度了一个较高优先级的任务,则当前正执行的进程在82被剥夺並再度调用调度程序以启动该较高优先级进程的执行。
参见图5,其中示出了存储在适配器存储器30中的某些重要数据结构。存储器30的大部分最好由发送/接收缓冲器90占用。这些缓冲器90是从存储器30中可利用的自由空间中动态地分配的。如本领域技术所知,维护了一个可用作发送/接收缓冲器90的自由空间表。
分配了一张供各种任务与中断使用的矢量表91。为每一端口独立地分配了用作临时数据存储器的栈92。因而,当在适配器上提供有四个通信端口时在存储器30中分配了四个栈。调度程序使用一个单独的栈93,各端口还有一个端口控制块94其中包含指向由对应的端口所访问的各种数据结构的指针。端口命令队列96为每一端口提供一个FIFO(先进先出)队列其中包含送到该端口的命令。送至一个端口的命令被置于一个称为一个端口命令单元的标准大小的数据结构,每一个队列的命令是放置在一个环形缓冲区中的。
当一条要求向宿主机或从宿主机传输数据的端口命令被执行时,在数据传输进程完成以前这一端口的其它命令不能执行。在某些系统中,不可能使用往复转换缓冲器通过端口传输数据。在这种情况中,如果一个端口的一条通道是活跃的,其它通道可为下一次传输建立。为了准备其它缓冲器,可以执行在端口命令队列96中等待的端口命令。
每一端口还有一个对应的端口应答队列98,它是由和端口命令队列96相同的环形缓冲器构成的。端口应答队列98中包含由对应的端口生成而必须由系统处理的项。如果一次系统总线DMA传输正在为一个端口执行,由该端口正在生成的这些应答都必须确定路由到该端口应答队列98。同时,如果一个端口正在休眠,将由一个予定的事件的出现所唤醒,则所有该端口生成的应答都确定路由到适当的应答队列98中。
在适配器存储器30中还有调度程序的可执行代码100,各种已调度的任务,以及中断处理程序。在适配器存储器30中分配了用于本技术领域所知的临时变量存储的各种其他单元,但並未具体地示出在图5中,存储器30中还包括调度程序工作表50。
参见图6,其中示出了系统总线DMA任务的操作。如上所述,系统总线DMA任务与其他级别不同地使用调度程序工作表50,即使用调度程序工作表次指示被调度的任务的编号而不是标识具有一个被调度的任务的端口。当一个系统总线DMA任务被调度时,对被请求的任务的一个指示被存储在一个单独的数据结构中(未示出),並且根据任何要求的赋优先级方案从被调度的系统总线DMA任务中选择一个。
一旦启动了一个系统总线DMA任务,在传输正在进行时,可以执行其它的适配器处理。由于只要有可能调度程序将试图调度一个级0任务,所以在系统总线DMA传输期间有必要将级0表次设置为0。从而,参见图6,一个选中的系统总线DMA任务所执行的第一步便是在108保存调度程序工作表50中级0所反映的当前DMA计数。然后在110为调度程序工作表的级0制造一个0表次,並在112启动系统总线DMA任务。一旦在112启动了DMA,控制可以返回给调度程序去选择另一个任务去执行。
在将来某一时刻,在114系统总线DMA传输将会完成。这时,在116必须调度另外一个任务,並且在118恢复调度程序工作表的级0表次。最好在恢复以前将放回表50的级0中的值先减去1。
如果已经发生的是一个将数据从宿主系大移动到适配器22上的发送DMA,必须将已经置于端口命令队列上的任务封锁解除(下面要说明)。此外,调度一个端口命令队列任务。当一个将数据从适配器22传送到宿主系统的接收DMA完成时,调度一个端口应答队列任务。此外,将导致对该端口的应答事件确定路由到该端口应答队列中的一个全程标志清除以允许正常地处理端口应答。所有这些操作都发生在步骤116中。
图7示出发送数据任务的操作。当一个帧结束中断指示完成了通过一个端口的一次发送操作时调度这一任务。该任务首先在120将有关信息放置在端口控制块94中发出完成信号。然后在122清並释放发送缓冲器。在124以设置调度程序工作表50中的适当位来调度端口命令队列任务。如果在126判定另一帧已准备好发送,则在128启动发送而任务完成。如果在126判定没有准备好发送的帧,则该任务简单地返回。
图8示出接收数据任务所执行的步骤。首先在130调用一个专门为用于处理正使用在通信端口上的通信协议而编码的过程。在一个通信端口上所使用的协议是用在对应端口控制块94中所包含的适当值来指示的。框132中所示的步骤是由该协议专用过程实际执行的。接收到的帧在134被处理並且在136在应答队列中加入任何适当的表项。如果在接收到的数据帧中出现错误,则可以调度一个错误/状态任务。
图9示出了错误/状态任务所执行的步骤。中断处理程序在140将一个错误标识符复制到该端口的端口控制块,用于向以后访问该端口的任务指示已经出现了一个错误。错误标识符指示所出现的错误的类型並在142检验对应的可能错误源。一旦标定了错误源,在144中将适当的表项加入到该端口的应答队列中。当这些表项最终被处理时,该端口错误将被指示给系统10。
端口应答队列任务的操作示出在图10中。首先在150检验队列是否是空的。如果是,则在152清用于自动重新确定端口应答路由到该队列的标志,使得端口应答以正常方式进行处理。然后该任务在154从调度工作表50中解除对自己的调度而完成。如果在150判定队列中有表项,则在156选择下一个项。在158检验判定是否下一个表项是一个要求向宿主系统10进行DMA传送的应答。如果是,则在160调度总线主DMA任务並在154解除对当前任务的调度。如果下一个表项不是一个DMA传送,则在162检验判定是否该端口的一个任务正在休眠。如果不是,则在164将应答送给宿主机。如果一个任务在休眼,则在166调度休眠/唤醒任务並在154解除对当前任务的调度。
图11示出端口命令队列任务所执行的步骤。总的说来,这一任务在端口命令队列96中选择下一个表项並使之被执行。各种事件的发生可能阻止执行下一个端口命令项的发生。第一步是在170从端口命令队列中选取下一个表项。如果在172判定下一个表项没有被封锁,则在174进行检验是否要求一次系统总线DMA操作。如果不是,而且在176判定该端口是可用的,则在177建立下一个数据块的发送並在178调度传送数据任务。如上所述,如果为每一个端口提供了两个往复转换工作的缓冲器,则可以予处理两次传输。
在许多情况中,有必要在数据能够被发送以前执行一次系统总线DMA传送将数据传送到适配器22上。如果步骤174的测试结果为一个“是”答复,有必要在180调度一次适当的系统DMA活动並在182封锁端口命令队列中当前选中的表项。然后在184解除这一端口的级5任务的调度。如以上结合图6所说明的,系统总线DMA任务的完成使得在步骤182中设置的封锁被清除,並重新调度这一端口的端口命令队列任务。在下一次通过图11中的进程时,在步骤174的系统DMA测试结果将是一个“否”回答。如果在步骤172判定下一表项是封锁的,或者在步骤176判定端口是不可用的,则控制传递到步骤184而在调度程序工作表50中这一端口的级5表项在184被解除调度。
图12示出了当一个任务将自己置于休眠並随后被唤醒时所执行的步骤。在190首先为该端口设置一个SLEEP-ENABLE(休眠-启动)变量。在191该任务进入休眠並在192将当前上下文保存在该端口的栈中。在步骤190中设置SLEEP-ENABLE变量导致由该端口生成的任务应答被确定路由到端口应答队列98。退出将要休眠的任务並在194发生其它处理,在步骤192中保存的上下文在端口栈92上保持不受触动。
当在端口应答队列上加上新的事件时,端口应答队列任务唤醒休眠的任务並在196从栈中恢复上下文。在198进行检验以判定该唤醒事件是否是该任务所等待的一个最终条件。如果不是,则该任务返回到191去休眠。如果该事件的确使该任务醒来,则在200恢复执行。当任务完成时,复位SLEEP-ENABLE变量。在任务执行中的一个后面的阶段中该任务可将自己置回到休眠中去,这便导致上述事件序列重复进行。
由于唤醒一个休眠任务是所能调度的最低级任务,在接受唤醒时系统得到保证在步骤192中保存在栈上的上下文必定是栈上的栈顶帧,一次唤醒是由另一个任务或中断调度的,它设置调度程序工作表50级6上的适当位。
以上所描述的系统提供优先调度在适配器上的各种通信子任务。不必改动作为基础的调度程序便可容易地扩充优先级的数目以及所能支持的通信端口的数目。较佳实施例的适配器支持两个独立的DMA传送级别。一个级别是在适配器总线26上执行的DMA传输,而第二个级别是由系统总线接口24执行的在系统总线16上的DMA传输。
较佳的调度程序工作表50已经赋予了任务优先级使得时间性最关键的任务具有最高优先级。必须以及时的方式执行以避免通过通信端口数据丢失的发送数据与接收数据任务比较放置在队列96与98上的各种命令与应答的处理具有较高的优先级。将自己置于休眠的任务,意味着时间不是一个关键性因素,在所有任务中具有最低的优先级。由于一个资源是所有端口之间共享的,系统总线DMA有成为瓶颈的趋向,所以赋予系统总线DMA任务以最高优先级。提供了一种机制,使得当一次系统总线DMA正在进行时其他任务可在适配器22上执行。由于在各优先级上采用了一种轮转的策略,所以没有一个端口会受到冷遇。
虽然本发明只以其形式中的一种示出,它並不局限于此而且容许不脱离其精神而作各种变化与修改。

Claims (14)

1、一种用于控制多个通信端口与一个宿主系统之间的数据传输的方法,其特征在于下述步骤:
定义多个任务用于执行这些端口与一个中间存储器之间,以及该中间存储器与宿主系统之间的数据传输部分;
赋予已定义的任务以优先级;
响应出现在端口处及宿主系统内的事件调度要执行的任务;以及
当一个任务完成时,选择一个在所有被调度的任务中具有最高优先级的任务接着执行。
2、权利要求1的方法,其特征在于对于所有端口所调度的一个任务是用一种轮转策略执行的。
3、权利要求1的方法,其特征在于所述调度步骤包括步骤:
提供一个表具有代表各个定义的任务的表项,其中任务是以在对应的表项中写入信息来调度的。
4、权利要求3的方法,其特征在于至少表中的一个表项具有多个子表项各对应于端口之一,以及其中任务是以在对应的子表项中写入信息来调度给一个端口去执行的。
5、权利要求4的方法,其特征在于各子表项包含一个数据位。
6、权利要求3的方法,其特征在于至少表中的一个表项表示对应的任务已经被调度的次数的计数,以及其中一个任务是以将该表项中的值增加1来调度的。
7、权利要求1的方法,其特征在于导致任务被调度的事件包括由宿主系统或端口提出的硬件中断。
8、权利要求7的方法,其特征在于导致任务被调度的事件还包括被调度的任务的执行。
9、一种接口系统用于将多个通信端口与一个宿主系统进行接口,其特征在于:
到宿主系统的一个接口;
一个中间存储器;
一个处理器用于控制该接口系统的操作;
多个通信端口;
一条总线连接所述宿主接口,所述中间存储器,所述处理器及所述通信端口;
由所述处理器执行的多个通信任务;以及
用于调度所述任务的执行的装置。
10、权利要求9的系统,其特征在于赋予各通信任务以一个优先级,且其中具有较好优先级的被调度的任务在具有较低级的被调度的任务之前被执行。
11、权利要求10的系统,其特征在于所述调度装置包括具有对应于所述任务的表项的一张表,並且其中任务是以在对应的表项中写入信息来进行调度的。
12、权利要求11的系统,其特征在于信息是响应由宿主系统与所述通信端口所生成的中断写入表项的。
13、权利要求12的系统,其特征在于信息也是由执行中的任务写入表项的。
14、权利要求11的系统,其特征在于至少一个表项包含多个位,每一位对应于所述通信端口之一,並且其中要为所述端口之一执行的一个任务是以写其对应位来进行调度的。
CN91100567A 1990-02-14 1991-01-31 数据处理系统中串行通信控制器的可度量的调度器 Expired - Fee Related CN1021536C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US479,777 1990-02-14
US07/479,777 1990-02-14
US07/479,777 US5247671A (en) 1990-02-14 1990-02-14 Scalable schedules for serial communications controller in data processing systems

Publications (2)

Publication Number Publication Date
CN1054160A true CN1054160A (zh) 1991-08-28
CN1021536C CN1021536C (zh) 1993-07-07

Family

ID=23905385

Family Applications (1)

Application Number Title Priority Date Filing Date
CN91100567A Expired - Fee Related CN1021536C (zh) 1990-02-14 1991-01-31 数据处理系统中串行通信控制器的可度量的调度器

Country Status (10)

Country Link
US (1) US5247671A (zh)
EP (1) EP0442615B1 (zh)
JP (1) JPH0727503B2 (zh)
KR (1) KR950002713B1 (zh)
CN (1) CN1021536C (zh)
AU (1) AU649642B2 (zh)
DE (1) DE69130620T2 (zh)
MY (1) MY105323A (zh)
NZ (1) NZ236764A (zh)
SG (1) SG42809A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1774696B (zh) * 2003-02-11 2010-04-28 汤姆森特许公司 通过主处理器实现设备之间的异步串行通信的方法和系统

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3055917B2 (ja) * 1990-05-22 2000-06-26 日本電気株式会社 データ転送制御装置
WO1992017796A1 (en) * 1991-03-28 1992-10-15 The Commonwealth Of Australia Radar control task scheduling
US5293486A (en) * 1991-06-28 1994-03-08 Digital Equipment Corporation Deterministic method for allocation of a shared resource
US5469571A (en) * 1991-07-15 1995-11-21 Lynx Real-Time Systems, Inc. Operating system architecture using multiple priority light weight kernel task based interrupt handling
US5313627A (en) * 1992-01-02 1994-05-17 International Business Machines Corp. Parity error detection and recovery
US5471586A (en) * 1992-09-22 1995-11-28 Unisys Corporation Interface system having plurality of channels and associated independent controllers for transferring data between shared buffer and peripheral devices independently
US5471618A (en) * 1992-11-30 1995-11-28 3Com Corporation System for classifying input/output events for processes servicing the events
US5631897A (en) * 1993-10-01 1997-05-20 Nec America, Inc. Apparatus and method for incorporating a large number of destinations over circuit-switched wide area network connections
US5717870A (en) * 1994-10-26 1998-02-10 Hayes Microcomputer Products, Inc. Serial port controller for preventing repetitive interrupt signals
US5634099A (en) * 1994-12-09 1997-05-27 International Business Machines Corporation Direct memory access unit for transferring data between processor memories in multiprocessing systems
US5603051A (en) * 1995-06-06 1997-02-11 Hewlett-Packard Company Input/output processor with a local memory providing shared resources for a plurality of input/output interfaces on an I/O bus
US6643765B1 (en) 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
DE19535546B4 (de) * 1995-09-25 2004-04-08 Siemens Ag Verfahren zum Betreiben eines durch ein Realzeit-Betriebssystem gesteuerten Realzeit-Computersystems
US5802282A (en) * 1995-12-28 1998-09-01 Intel Corporation Recovering missing data during background data transfer in multipoint conferencing
US5925105A (en) * 1995-12-28 1999-07-20 Intel Corporation Preventing processor domination during background data transfer in multipoint conferencing
US5754776A (en) * 1995-12-28 1998-05-19 Intel Corporation Re-prioritizing background data transfers in multipoint conferencing
US6400819B1 (en) * 1996-03-28 2002-06-04 Hitachi, Ltd. Method and apparatus for executing communication in real-time and data structure for real-time data communication
US7116635B2 (en) * 1996-03-28 2006-10-03 Hitachi, Ltd. Process execution method and apparatus
US5974496A (en) * 1997-01-02 1999-10-26 Ncr Corporation System for transferring diverse data objects between a mass storage device and a network via an internal bus on a network card
US6088728A (en) * 1997-06-11 2000-07-11 Oracle Corporation System using session data stored in session data storage for associating and disassociating user identifiers for switching client sessions in a server
US6243751B1 (en) 1997-06-11 2001-06-05 Oracle Corporation Method and apparatus for coupling clients to servers
US6473780B1 (en) * 1998-04-01 2002-10-29 Intel Corporation Scheduling of direct memory access
US6266715B1 (en) * 1998-06-01 2001-07-24 Advanced Micro Devices, Inc. Universal serial bus controller with a direct memory access mode
US6061709A (en) * 1998-07-31 2000-05-09 Integrated Systems Design Center, Inc. Integrated hardware and software task control executive
US6098142A (en) * 1998-08-25 2000-08-01 Leggett; John D. Apparatus and method for using a communications port in polling mode and without interrupts
US9239763B2 (en) 2012-09-28 2016-01-19 Oracle International Corporation Container database
KR100617228B1 (ko) * 1999-03-19 2006-08-31 엘지전자 주식회사 실시간 운영체계 커널의 이벤트 전달 체계 구현방법
JP3356110B2 (ja) 1999-04-21 2002-12-09 日本電気株式会社 機能拡張システム及びそれに用いるデータ転送方法
US6603771B1 (en) 1999-07-02 2003-08-05 Cypress Semiconductor Corp. Highly scalable architecture for implementing switch fabrics with quality of services
US6584517B1 (en) 1999-07-02 2003-06-24 Cypress Semiconductor Corp. Circuit and method for supporting multicast/broadcast operations in multi-queue storage devices
US6628656B1 (en) 1999-08-09 2003-09-30 Cypress Semiconductor Corp. Circuit, method and/or architecture for improving the performance of a serial communication link
US6625177B1 (en) 1999-08-09 2003-09-23 Cypress Semiconductor Corp. Circuit, method and/or architecture for improving the performance of a serial communication link
EP1236092A4 (en) 1999-09-01 2006-07-26 Intel Corp BRANCH COMMAND FOR A PROCESSOR
WO2001016702A1 (en) 1999-09-01 2001-03-08 Intel Corporation Register set used in multithreaded parallel processor architecture
US6477610B1 (en) * 2000-02-04 2002-11-05 International Business Machines Corporation Reordering responses on a data bus based on size of response
US7089344B1 (en) * 2000-06-09 2006-08-08 Motorola, Inc. Integrated processor platform supporting wireless handheld multi-media devices
US7236976B2 (en) * 2000-06-19 2007-06-26 Aramark Corporation System and method for scheduling events and associated products and services
US7681018B2 (en) 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
US6741530B2 (en) * 2001-01-25 2004-05-25 Dphi Acquisitions, Inc. Time critical and non-time critical tasks control system for an optical disk using first and second processors
US7522480B2 (en) 2001-01-25 2009-04-21 Dphi Acquisitions, Inc. Digital tracking servo system with multi-track seek with an acceleration clamp
US7487505B2 (en) * 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
US7216204B2 (en) 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US6868476B2 (en) 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US7225281B2 (en) * 2001-08-27 2007-05-29 Intel Corporation Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
US20030065809A1 (en) * 2001-10-03 2003-04-03 Adc Telecommunications, Inc. Scheduling downstream transmissions
US7610451B2 (en) 2002-01-25 2009-10-27 Intel Corporation Data transfer mechanism using unidirectional pull bus and push bus
US7243367B2 (en) * 2002-01-31 2007-07-10 Brocade Communications Systems, Inc. Method and apparatus for starting up a network or fabric
US7437724B2 (en) 2002-04-03 2008-10-14 Intel Corporation Registers for data transfers
DE10218646A1 (de) 2002-04-25 2003-11-13 Infineon Technologies Ag An einen Bus angeschlossene Einrichtung
US6792481B2 (en) * 2002-05-30 2004-09-14 Freescale Semiconductor, Inc. DMA controller
US7337275B2 (en) * 2002-08-13 2008-02-26 Intel Corporation Free list and ring data structure management
US6941438B2 (en) 2003-01-10 2005-09-06 Intel Corporation Memory interleaving
US20050021842A1 (en) * 2003-03-17 2005-01-27 Network Equipment Technologies Real-time packet classification and rate-limiting control packets in a network processor based data-plane
US20040184462A1 (en) * 2003-03-17 2004-09-23 Network Equipment Technologies Sliding window implementation for regulating packets for protocol-based connections
US7353285B2 (en) * 2003-11-20 2008-04-01 International Business Machines Corporation Apparatus, system, and method for maintaining task prioritization and load balancing
TWI283394B (en) * 2004-03-31 2007-07-01 Mstar Semiconductor Inc Data processing method and structure of a multi-function display
US7502824B2 (en) * 2004-08-12 2009-03-10 Oracle International Corporation Database shutdown with session migration
US7415470B2 (en) * 2004-08-12 2008-08-19 Oracle International Corporation Capturing and re-creating the state of a queue when migrating a session
US7730257B2 (en) * 2004-12-16 2010-06-01 Broadcom Corporation Method and computer program product to increase I/O write performance in a redundant array
CA2585295C (en) * 2004-12-22 2011-05-10 Pika Technologies Inc. System and method for synchronous processing of media data on an asynchronous processor
DE102004062116B3 (de) * 2004-12-23 2006-05-11 Ab Skf Lageranordnung für einen Computertomographen
US7386642B2 (en) * 2005-01-28 2008-06-10 Sony Computer Entertainment Inc. IO direct memory access system and method
JP2006216042A (ja) * 2005-02-04 2006-08-17 Sony Computer Entertainment Inc 割り込み処理のためのシステムおよび方法
US7680972B2 (en) * 2005-02-04 2010-03-16 Sony Computer Entertainment Inc. Micro interrupt handler
US9176772B2 (en) * 2005-02-11 2015-11-03 Oracle International Corporation Suspending and resuming of sessions
GB2433333B (en) 2005-12-13 2011-07-13 Advanced Risc Mach Ltd Distributed direct memory access provision within a data processing system
US7809068B2 (en) 2005-12-28 2010-10-05 Intel Corporation Integrated circuit capable of independently operating a plurality of communication channels
US7861113B2 (en) * 2007-03-16 2010-12-28 Dot Hill Systems Corporation Method and apparatus for operating storage controller system in elevated temperature environment
US8549038B2 (en) 2009-06-15 2013-10-01 Oracle International Corporation Pluggable session context
US8490107B2 (en) 2011-08-08 2013-07-16 Arm Limited Processing resource allocation within an integrated circuit supporting transaction requests of different priority levels
US20130060587A1 (en) * 2011-09-02 2013-03-07 International Business Machines Corporation Determining best time to reach customers in a multi-channel world ensuring right party contact and increasing interaction likelihood
US10387387B2 (en) 2015-12-17 2019-08-20 Oracle International Corporation Enabling multi-tenant access to respective isolated data sets organized using different application schemas
US10289617B2 (en) 2015-12-17 2019-05-14 Oracle International Corporation Accessing on-premise and off-premise datastores that are organized using different application schemas
US10303894B2 (en) 2016-08-31 2019-05-28 Oracle International Corporation Fine-grained access control for data manipulation language (DML) operations on relational data
US20180089117A1 (en) * 2016-09-26 2018-03-29 Wave Computing, Inc. Reconfigurable fabric accessing external memory
US10949328B2 (en) 2017-08-19 2021-03-16 Wave Computing, Inc. Data flow graph computation using exceptions
US11934308B2 (en) 2019-04-01 2024-03-19 Wave Computing, Inc. Processor cluster address generation
US10997102B2 (en) 2019-04-01 2021-05-04 Wave Computing, Inc. Multidimensional address generation for direct memory access
CN111444124A (zh) * 2020-03-25 2020-07-24 苏州琅润达检测科技有限公司 一种高频自主请求的串口分流装置
US11914864B2 (en) 2021-07-01 2024-02-27 Samsung Electronics Co., Ltd. Storage device and method of data management on a storage device
TWI792684B (zh) * 2021-11-17 2023-02-11 瑞昱半導體股份有限公司 資料傳輸方法以及資料傳輸系統

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3587054A (en) * 1968-09-06 1971-06-22 Bell Telephone Labor Inc Scheme allowing real time alteration of a data processing system operating strategy
US3599162A (en) * 1969-04-22 1971-08-10 Comcet Inc Priority tabling and processing of interrupts
IT971304B (it) * 1972-11-29 1974-04-30 Honeywell Inf Systems Sistema di accesso a priorita variabile dinamicamente
US4047161A (en) * 1976-04-30 1977-09-06 International Business Machines Corporation Task management apparatus
US4261033A (en) * 1977-01-19 1981-04-07 Honeywell Information Systems Inc. Communications processor employing line-dedicated memory tables for supervising data transfers
US4257095A (en) * 1978-06-30 1981-03-17 Intel Corporation System bus arbitration, circuitry and methodology
US4560985B1 (en) * 1982-05-07 1994-04-12 Digital Equipment Corp Dual-count, round-robin ditributed arbitration technique for serial buses
US4814974A (en) * 1982-07-02 1989-03-21 American Telephone And Telegraph Company, At&T Bell Laboratories Programmable memory-based arbitration system for implementing fixed and flexible priority arrangements
US4494194A (en) * 1982-09-30 1985-01-15 Burroughs Corporation Line support processor for data transfer system
US4479211A (en) * 1982-10-29 1984-10-23 At&T Bell Laboratories Method and apparatus for controlling ports in a digital conference arrangement
US4493036A (en) * 1982-12-14 1985-01-08 Honeywell Information Systems Inc. Priority resolver having dynamically adjustable priority levels
US4667321A (en) * 1983-11-14 1987-05-19 Tandem Computers Incorporated Input-output multiplexer-demultiplexer communications channel
US4636944A (en) * 1984-01-17 1987-01-13 Concurrent Computer Corporation Multi-level priority micro-interrupt controller
US4870566A (en) * 1984-08-27 1989-09-26 International Business Machines Corp. Scannerless message concentrator and communications multiplexer
US4980820A (en) * 1985-02-28 1990-12-25 International Business Machines Corporation Interrupt driven prioritized queue
CA1241761A (en) * 1985-02-28 1988-09-06 International Business Machines Corporation Interrupt driven prioritized work queue
US4642756A (en) * 1985-03-15 1987-02-10 S & H Computer Systems, Inc. Method and apparatus for scheduling the execution of multiple processing tasks in a computer system
US4858108A (en) * 1985-03-20 1989-08-15 Hitachi, Ltd. Priority control architecture for input/output operation
US4751634A (en) * 1985-06-14 1988-06-14 International Business Machines Corporation Multiple port communications adapter apparatus
US4719569A (en) * 1985-10-11 1988-01-12 Sun Microsystems, Inc. Arbitrator for allocating access to data processing resources
US4747130A (en) * 1985-12-17 1988-05-24 American Telephone And Telegraph Company, At&T Bell Laboratories Resource allocation in distributed control systems
US4739323A (en) * 1986-05-22 1988-04-19 Chrysler Motors Corporation Serial data bus for serial communication interface (SCI), serial peripheral interface (SPI) and buffered SPI modes of operation
JPS6356736A (ja) * 1986-08-28 1988-03-11 Alps Electric Co Ltd マルチタスクosにおける入力装置とプログラムとの結合方式
US4821177A (en) * 1986-09-02 1989-04-11 Honeywell Bull Inc. Apparatus for controlling system accesses having multiple command level conditional rotational multiple port servicing priority hierarchy
US4803623A (en) * 1986-10-31 1989-02-07 Honeywell Bull Inc. Universal peripheral controller self-configuring bootloadable ramware
DE3788346T2 (de) * 1986-11-04 1994-06-23 Unisys Corp E/a-system zur abladung von betriebssystemfunktionen.
US4901226A (en) * 1987-12-07 1990-02-13 Bull Hn Information Systems Inc. Inter and intra priority resolution network for an asynchronous bus system
JPH01193955A (ja) * 1988-01-28 1989-08-03 Nec Software Ltd 受信データの蓄積方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1774696B (zh) * 2003-02-11 2010-04-28 汤姆森特许公司 通过主处理器实现设备之间的异步串行通信的方法和系统

Also Published As

Publication number Publication date
MY105323A (en) 1994-09-30
JPH04215158A (ja) 1992-08-05
DE69130620D1 (de) 1999-01-28
EP0442615A3 (en) 1992-12-16
DE69130620T2 (de) 1999-07-22
AU649642B2 (en) 1994-06-02
KR920000035A (ko) 1992-01-10
KR950002713B1 (ko) 1995-03-24
EP0442615B1 (en) 1998-12-16
CN1021536C (zh) 1993-07-07
JPH0727503B2 (ja) 1995-03-29
NZ236764A (en) 1995-07-26
SG42809A1 (en) 1997-10-17
AU6935991A (en) 1991-08-15
US5247671A (en) 1993-09-21
EP0442615A2 (en) 1991-08-21

Similar Documents

Publication Publication Date Title
CN1021536C (zh) 数据处理系统中串行通信控制器的可度量的调度器
CN1025382C (zh) 具有通用操作系统接口的设备驱动系统
US6880021B2 (en) Intelligent interrupt with hypervisor collaboration
CN1163822C (zh) 微处理器指令执行方法及相关微处理器和数据处理系统
US6564271B2 (en) Method and apparatus for automatically transferring I/O blocks between a host system and a host adapter
US6754738B2 (en) Low overhead I/O interrupt
US20080155163A1 (en) Serial advanced technology attachment (SATA) and serial attached small computer system interface (SCSI) (SAS) bridging
US6795875B2 (en) Arbitrating and servicing polychronous data requests in direct memory access
EP0366581A2 (en) Method to provide concurrent execution of distributed application programs by a host computer and an intelligent work station on an sna network
CN1155882C (zh) 具有指令历史信息的基本块高速缓存的微处理器、执行方法和系统
EP0106669A2 (en) Operating system supervisor
WO1993020516A1 (en) Virtual fifo peripheral interface system and method
US5790887A (en) Method and apparatus for processing programmed input/output (PIO) operations in a computer system
CN1116638C (zh) 使用基本块高速缓存的微处理器、系统及指令执行方法
EP0052713B1 (en) A process management system for scheduling work requests in a data processing system
CN100397345C (zh) 用于管理资源元素队列的方法和控制器
US7917906B2 (en) Resource allocation in a computer-based system
CN109426562A (zh) 优先级加权轮转调度器
US20030065833A1 (en) Initiative passing in an I/O operation without the overhead of an interrupt
EP0369920A2 (en) Interleaving circular buffers
CN1234550B (zh) 一种输入/输出总线系统
CN2520528Y (zh) 存取共享系统资源的桥接系统
JPH06243093A (ja) バス制御システム
Winick QTAM-control and processing in a telecommunication environment
US20050050113A1 (en) System and method for facilitating data flow between synchronous and asynchronous processes

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C15 Extension of patent right duration from 15 to 20 years for appl. with date before 31.12.1992 and still valid on 11.12.2001 (patent law change 1993)
OR01 Other related matters
C19 Lapse of patent right due to non-payment of the annual fee
CF01 Termination of patent right due to non-payment of annual fee