著录项信息
专利名称 | 可编程中断控制器 |
申请号 | CN90108766.1 | 申请日期 | 1990-10-31 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 1991-06-12 | 公开/公告号 | CN1052202 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | 暂无 | IPC分类号 | 暂无查看分类表>
|
申请人 | 国际商业机器公司 | 申请人地址 | 新加坡;彰宜
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 联想(新加坡)私人有限公司 | 当前权利人 | 联想(新加坡)私人有限公司 |
发明人 | 阿维里·M·赖福德;丹尼斯·L·莫易勒尔;皮特·J·克林姆 |
代理机构 | 中国国际贸易促进委员会专利代理部 | 代理人 | 杜日新 |
摘要
一种具有多个中断请求输入和一个中断请求输出的编程中断控制器,它包括根据中断请求输入而中断CPU工作并使其为该中断请求服务的装置和为每一中断输入指定一个优先等级的优先判别装置。该中断控制器为对每一中断请求输入单独编程以决定每一请求或者响应沿触发的中断请求或者响应电平触发的中断请求。这是通过对一可按位编程的初始化命令寄存器的编程来实现的。
1、包括中央处理器(CPU)和一组外围设备的系统中的中断控制器,其特征是它具有:
连接并接收从这组外设来的中断请求的多个输入;
与CPU相连的一个中断请求输出;
根据这些中断请求中的任一个请求,通过该中断请求输出发出中断信号中断CPU的工作以使CPU为该中断请求服务的装置;
给每个输入指定一个在所述多个输入中的优先权位置以造成一等级序列,以便在所收到时间重迭的中断请求时,能确定哪个中断请求应该首先服务的优先判别器;以及
能独立地确立每一输入是响应沿触发或者电平触发中断请求的确立装置。
2、权利要求1所述的可编程中断控制器,其特征是,其确立装置中包括第一初始化命令寄存器,它有许多位,每一位分别对应于输入之一,并且当各自的位处于第一状态时,就确定该输入响应沿触发的中断请求,以及当各自的位处于第二状态时,就确定该输入响应电平触发的中断请求。
3、权利要求2所列的可编程中断控制器,其特征是其确立装置还包括一中断请求寄存器,它有许多级,这些级的每一个对应于每一位和一个中断请求输入,每一级包括:
a)一个沿检测器,它包括一沿检测锁存器,其数据输入端接各自的中断请求输入,当上述第一初始化命令寄存器的自己那一位被编程为第一状态以接收沿触发中断请求时,它可以把该请求锁到一电平转换锁存器,后一锁存器能接收中断请求并把它作为电平锁存起来,
b)一暂稳锁存器,当自己的位被编为第二状态时,它接收电平触发的中断请求,而当自己的位被编程为第一状态时,它从上述电平转换锁存器中接收作为电平保存的中断请求,以及
c)一中断请求寄存器位,它接收并保持暂稳锁存器中保存的中断请求。
4、如权利要求3所述的可编程中断控制器,其特征是所述确立装置还包括一第二初始化命令寄存器,它其中有一位,其第一状态相应于沿触发中断,其第二状态相应于可按位选择其中断敏感性,当第二初始化命令寄存器中的该位处于其第一状态时,对每一状态沿检测器都工作,并且暂稳锁存器连接成接收锁存的沿敏感中断请求,而在第二初始化命令寄存器的该位处于第二状态时,该沿检测器按照第一初始化命令寄存器中属于自己的位的状态工作,并且暂稳锁存器也按照第一初始化命令寄存器中自己那一位的状态来连接。
5、权利要求3的可编程中断控制器,其特征是所述沿检测器还包括一同步锁存器,它的数据输入端接成能在所述第一初始化命令寄存器的自己那一位处于第一状态时,可接收自己的中断请求,它的输出接到沿检测锁存器的数据输入,其时钟输入接成能接收系统时钟,以便把数据输入端来的中断请求锁存到其数据输出,所以该同步锁存器把沿触发的中断请求信号以与系统时钟同步的形式锁存到其沿检测锁存器的数据输入。
6、权利要求3的可编程中断控制器,其特征是还包括与系统数据总线相连的一数据总线缓冲器,该系统数据总线还与中央处理器(CPU)相接;一包括上述第一和第二初始化命令寄存器的读/写控制逻辑块;以及一连在该数据总线缓冲器和该读/写控制逻辑块之间的内部数据总线,该块还包括能根据CPU发出的命令,过系统数据总线上的数据经其数据总线缓冲器和其内部数据总线,写入其第一和第二初始化命令寄存器的装置。
7、权利要求6所述的可编程中断控制器,其特征是读/写控制逻辑块包括一具有第一和第二输出状态的中断输出,当某一中断请求寄存器位接收并保持一中断请求时,该中断输出进入其第一状态并中断CPU,使CPU为该中断请求服务。
8、一种接收并处理从某第一源来的沿触发请求和从某第二源来的电平沿触发的中断请求的方法,其特征在于如下步骤:
对具有第一和第二中断请求输入的中断控制器编程,使其检测从第一中断请求输入来的沿触发中断请求,并检测从第二中断请求输入来的电平触发的中断请求,这种编程是按每个输入进行的;
检测并锁存从第一输入来的沿触发中断请求;
中断CPU,使其为该沿触发中断请求服务;
检测从第二输入来的电平触发中断请求;
并且
中断CPU的工作,使CPU为该电平触发的中断请求服务。
9、权利要求8所述的方法,其特征在于还有如下步骤:
把锁存的沿触发中断请求装入到一中断请求寄存器的与该第一中断请求对应的第一位。
并且
把电平触发的中断请求装入中断请求寄存器的与第二中断请求输入相对应的第二位。
10、权利要求8所述的方法,其特征在于所述编程步骤包括把分别相应于第一和第二输入的某初始化命令寄存器的第一和第二位分别置成其第一和第二状态,该第一状态相应于沿触发,而第二状态相应于电平触发。
11、权利要求8所述的方法,其特征是其第一和第二中断请求输入有分别与它们对应的第一和第二中断服务程序,并且在为沿触发中断请求服务的中断步骤和电平触发中断请求服务的中断步骤的每一个都包括:允许把一CALL(调用子程序)操作码送到连接CPU和该中断控制器之间的数据总线上,并且把各自中断服务程序的地址送到该数据总线。
12、权利要求2所述的方法,其特征是其第一和第二中断请求输入分别具有与它们对应的第一中断矢量和第二中断矢量,并且为沿触发的和电平触发的中断请求服务的上述中断步骤的每个都包括:把各自的中断矢量送到数据总线上。
本发明总的涉及计算机系统的可编程中断控制器,尤其是具有多个中断请求输入、每个输入可编程为能检测沿触发或者电平触发的中断请求的中断控制器。\n许多计算机都设计成可以和一个以上的外围设备接口。计算机系一般都包含中央处理器(CPU),它与包括数据线、地址线和控制线的总线相接。总线与其它计算机系统部件,比如程序存贮器相连,並且也通过适当接口与外围设备相接。接口也可以包括进行电压或信号格式转换的接口装置,以使计算机系统与接口装置相兼容。通常需要使用适当的接口连接器。CPU与外围设备间的通信可以包括检测或命令信息。准确地说,作为检测器的外设可以产生表征外围检测装置所检测参数的数据信号,比如,温度、电压或者其它参数。这种数据信号可被变成适当的形式,並被CPU通过读该接口,提供给CPU关于该被检测参数的数据。另一情况是,外围设备可以是控制器。通过向外设控制装置写适当命令,CPU可控制外围控制装置。然后该外设根据该命令完成适当动作。\n在包含多个外设的系统中,CPU与外设间的频繁或连续通信常常是必须的。保持CPU与外设的联系可采用各种方案。第一种方案称为查询。在查询方案中,CPU在给定的时间间隔执行查询程序。通常用硬件定时器使CPU周期性地执行查询程序。在执行查询程序期间,CPU读取关于外设的状态信息,它指出所检测参数的状态是否改变,或者是否需要给外设发送一个命令。根据查询程序所得到的 给定外设的状态信息,CPU采取适当动作,比如给外设发送命令或者更新贮存在计算机系统存贮器中的该外设的状态记录。查询通常用于与大量外设接口的计算机系统中。但是,查询的缺点是查询程序必须要频繁执行,因而浪费大量CPU处理时间。在大多数情况下,从外设读出的状态信息表示不需要采取什么动作。因而,回想起来执行查询程序所化的时间表明是徒劳的。在包括大量活动或实时应用的计算机系统中,重复执行查询程序所化的时间会降低处理效率。\n作为替代查询的方法,计算机系统常常用中断来为外设服务。在中断系统中,当检测到要求CPU服务的某种请求时,外设就发出称为中断请求的信号。许多CPU的设计都包括有中断请求输入线。具有这种中断请求输入的CPU在其中断请求线上检测到予定电压的信号时,就执行中断服务程序。因此,CPU与外设间的接口中应包括检测该外设的要求服务的状态的电路,並向CPU发出适当的中断请求信号。\n由于只在需要时才执行中断服务程序,所以这种中断驱动的系统具有改善的处理效率。但是,常常要求CPU为多个外设服务。在这类系统中,如收到中断请求,就会出现怎样确定需要服务的外设的问题。並且,若几个外设同时发出了中断请求信号,就有一个应确实首先给谁服务的方法问题。为了提供这些问题的实际答案,已设计出了可编程控制器並与计算机系统一起使用。典型的中断控制器具有一个中断请求输出,它与CPU的中断请求输入相连。中断控制也有多个中断请求输入。每一中断请求输入与外设相连。这样,当外设请求服务时,它产生适当的中断请求信号被中断控制器所接收。然后,中断控制器中断CPU並使之执行相应的中断服务程序。\n一个熟知的中断控制器的例子是Intel公司制造的可编程中断控制器8259A。8259A的设计是要适应以两种不同的方式支持多个中断请求输入的不同类型的微处理器。第一类是Intel 8080/8085微处理器,它通过执行以子程序地址为操作数的调用子程序软件指令来对中断请求服务。第二类是Intel 8086微处理器,它利用8位矢量从贮存在一个连续页面的存贮器的地址表中挑选中断服务程序的入口地址面对中断请求服务。根据所用的微处理器的不同,8259A可被编程为得其在响应中断请求输入时,它能中断CPU,並且或者在CPU的系统总线上提供子程序调用指令后面跟以子程序入口地址,或者提供8位中断矢量。这样,在任一情况下,8259A都向CPU提供了所要执行的中断服务程序的有关信息,从而保证CPU能对以适当方式请求中断的外设进行服务。\n8259可以被编程为检测其中断请求输入线上的低到高电压跳变或高电压电平的输入中断请求信号。换言之,8259A的中断输入可被配置成或是沿触发的,或者是电平触发的。许多外设被设计成产生低到高电压跳变形式的沿触发中断请求信号。准确地说,沿触发中断请求是在给定时间限制内从可识别的低电压到可识别的高电压的跳变。但是,用高电压电平请求服务的外设越来越普遍。因此,人们希望能检测沿触发中断的中断控制器也能使用于电平触发中断请求的外设,因而提供接口设计的较大灵活性。人们期望计算机的中断控制器具有足够的灵活性,以容纳较新的、产生电平触发中断请求的外设但又与较老的、产生沿触发中断请求的外设相兼容。\n但是直到今天,可编程中断控制器都有这种缺点:其中断请求输入只能设置成同一种形式。通常都是用一个沿/电平配置控制位来编 程所有中断请求输入,使其或者用沿触发或者用电平触发。这种缺憾造成了如下缺点:把系统更改成包括产生电平触发中断请求的外围设备就要求所有的外设也被更新。这对于采用电平触发外设和老的沿触发外设的混合系统是不现实的。这会减低灵活並增加用户的成本。\n本发明的目的是提供这样一种可编程中断控制器:它可以检测从每个外设来的沿触发及电平触发中断请求信号。\n本发明的另一目的将一种中断控制器提供这样的计算机系统,它可以使组合内的外围设备以这样的方式被取代或者更新:它可以改变沿触发和电平触发的中断请求而仍保留系统对外设的服务能力。\n本发明的一个相关目的是把中断控制器提供给计算机,使它能对从沿触发及电平触发中断请求的外设的任何具体混合来的中断请求进行服务,而不考虑每一外设的地址位置。换言之,每一外设可以具有沿触发或电平触发的中断请求,並且中断控制器可以纳容每一中断线来的沿触发及电平触发的中断。\n本发明的另一目的是提供与上述目的相一致的可编程中断控制器,它可以根据为先前已存在的可程序中断控制器编写的现在软件进行编程。若控制器被这样编程的话,所有输入既可检测沿触发的中断请求,又可检测电平触发的中断请求,所以,本发明的中断控制器就与先前存在的可编程中断控制器的工作相一致。这样,该控制器就与现存计算机系统向后兼容。\n本发明的再一目的是为计算机系统提供与上述目标相一致的可编程中断控制器。\n本发明还有一个目的就是提供一种接受沿触发和电平触发中断请求並为之服务的方法。\n为了实现上述目的,当本发明的可编程中断控制器用于这样的计算机系统,即它有多个输入从一组外围设备连接到输入中断请求,一个中断请求输出接到CPU时,它提供有这样的中断CPU的手段,当从中断请求输入上收到任一中断请求时,就在中断请求输出上产生一中断信号,以使CPU为该中断请求服务,一优先级判决器给这许多输入的每一个输入指定一个优先级位置,这就造成一个等级序列,以便当所收到的中断请求在时间上重迭时,确定哪个中断请求应首先服务,它还提供这样的手段,可对每个输入独立地确立为响应沿触发或者电平触发中断的请求。\n此外,根据本发明,还提供了接收从第一源来的沿触发中断请求和从第二源来的电平触发中断请求并对其服务的方法,它具有对带有第一和第二中断请求输入的中断控制器进行编程的步骤,以便检测来自第一中断请求输入的沿触发中断请求和来自第二中断请求输入的电平触发中断请求,这种编程是对每个输入进行的,它检测锁存的来自第一输入的沿触发中断请求,中断CPU并使CPU为该沿触发中断请求服务,检测来自第二输入的电平触发的中断请求,并中断CPU使之为该电平触发的中断请求服务。\n本发明的可编程中断控制器,有利于为其各种中断请求输入上既可以使用沿触发的外设又可以使用电平触发的外设的计算机系统的设计和实现带来灵活性。并且,这些外部的设备可以更换。把沿触发的外设改为电平触发的外设只需要改变中断控制器编程配置。因而,计算机系统可用新的电平触发的外设升级而不必承担更换其它外设所带来的不希望的成本提高。\n根据本发明申述的方法,有利于提供计算系统设计的灵活性和便 利性,也可以使系统用所述的中断控制器而升级。\n参照附图,可以更充分地理解本发明的这些以及其目的、特性和优点。\n图1是使用本发明的中断控制器为外设服务的计算机系统的方框图。\n图2是本发明的中断控制器的框图。\n图3是表示本发明的优选实施例所用的初始化控制字寄存器的硬件配置的逻辑图。\n图4-6是图3所示的各个初始化控制字寄存器的详细逻辑图。\n图7是图2所示的中断请求寄存器(IRR)级的详细逻辑图。\n图8A和8B分别是图7中沿检测器的第一和第二实施例。\n图9A到9E是一些表格,它说明了怎样对可编程中断控制器的实施例中的初始化控制字寄存器编程以使其具有不同的系统配置。\n参看图1,它描述了一个采用本发明的中断控制器的计算机系统。计算机的系统总线2与中央处理器(CPU)4、存贮器6、中断控制器8和多个外设接口10-24相连。接口10-24可以是任何类形的合用的共用界面,也可以包括电子接口器件,比如为用异步接收/发送器(UARTS)及适当的连接器。接口10-24与外设26-40相连,它们可以是检测或监视装置,比如热偶传感器或电压检测器,或者是控制装置,比如马达、电子开关,或者其它适合于计算控制的装备。外设26-40具有中断请求输出,它们通过线42-56与中断控制器8的中断请求输入相连。中断控制器8包括一中断请求输出,它经线58与CPU4的中断请求输入相连。传送中断应答信号的中断响应线60从CPU4返回到中断控制器8。 一般把线58、60作为系统总线(它包括数据、地址和命令线)的一部分来处理。但为了说明的便利,图1把中断控制器8和CPU4之间的中断请求线58和中断应答线60作为单独的线来处理。\n图2给出了中断控制器8的更详尽的方框图。数据总线缓冲器62提供系统数据总线2(图1)与内部数据总线64间的接口。中断请求寄存器(IRR)66接到数据总线64,並且具有8条中断请求输入,一起用68表示。中断请求输入68被分别命名为IRQ0~IRQ7。IRR66具有一中断请求输出INTR70,它与线58相接,见图1。此外,图2所示的实施例包括一中断应答输入INTA72,它与从CPU4来的中断应答线60相接。为了能使CPU4选择中断控制器8並对该控制器8进行读写,提供有读/写控制模块74,它具有读及写输入( IOR, IOW)76,78,一个片选信号输入( CS)80,及一地址选样输入(A)82。为使多个中断控制器能在一个计算机系统中级联,它提供有级联控制器84,它有一3比特的级联总线(CAS)86,当控制用作为主控制器时,它是输出总线,当作为从控制器时,它是输入总线。\n图2也画出了中断服务寄存器(ISR)88。ISR贮存一比特,相应于每一输入线68。ISR88中的这些比特被置住,表示哪些中断等级正在被服务。IRR66产生一中断请求,它被通过中断请求线70送交CPU4。从CPU4来的应答,经由中断应答线72被IRR66、ISR88、矢量发生器90和优先级判别器92所接收,它们都采用常规设计。\n中断控制器8也包括一系列初始化命令字(ICW)寄存器,一 块用94表示,在初始化时,CPU4可通过数据总线缓冲器62和内部数据总线64对它们写入。在通常的方式中,ICW寄存器94提供矢量位给矢量发生器90,反过来,它又向内部数据总线64提供适当的中断矢量或服务程序地址。优先权判决器92给中断请求输入(IRQ0-IRQ7)68的每一个指定一个相对于68的其它输入的优先位置以生成一个等级系列,当ZRR66收到同时的或时间重迭的中断请求时,决定哪个中断请求应最先服务。可以采用任何合适的优先方案。作第一个例子,优先级可以固定为给定次序。第二个例子,优先级是循环的,即,被服务过的输入可以处于优先等级的底部。最后,操作命令字(OCW)寄存器OCW1,OCW2及OCW3可以熟知的方法使中断控制器8工作于各种方式。OCW1贮存在蔽寄存器96.OCW1寄存器中的比特用于屏蔽IRQ寄存器输入68中选择的那些比特。OCW2和OCW3贮存在工作寄存器98並提供其它工作方式。\nICW寄存器94在图3详细说明。该寄存器包括ICW1(用100表示),ICW2(102),ICW3(104),ICW4(106)和ICW5(108)。图3中,这些ICW寄存器是以方框图和一些连线表示的。下面将给出並讨论这些寄存器的较详细的逻辑图及与它们连接的附属逻辑。尽管下述讨论是用一优选实例对这些寄存器的位所控制的各种功能来描述的,但应明白根据本发明的精神和范围的中断控制器可以包括数目不同的寄存器,並可给其位赋以功能,比如下面所述的功能,其安排也可以与本实施例不同。並且,其各个位的定义也可不同,只要其整个器件的功能基本上与本发明的精神和范围相符就行。初始化期间对这些寄存器的编程可用CPU4 对这些寄存器写入适当的值以使它们中的比特被置成所期望中断控制器8所达到的配置。各种配置下对ICW编程的举例由图9A-9E和相关的文字来说明。在本实施例中,ICW寄存器94是按顺序写入的。另一种方法是ICW寄存器可以分别编址,以便可用希望的顺序对其进行读写。每一寄存器产生一信号指示它已被写过。图3中,这些信号是ICW1/ ICW1,COMPL ICW2,COMPL ICW3,COMPL ICW4和ICW5COMPLETE。这些信号用于对顺序寄存器的写入。当用所有这些ICW寄存器94对中断控制器8配置时,一些寄存器包含的位是本发明实施所特有的。这些寄存器将在下面详细描述。\n图3也可看作下述详细主题的总括。以图3所示的优选实施例的结构的许多方面类似于前述Intel 8259A可编程中断控制器。尤其是ICW1,ICW2,ICW3和ICW4寄存器100,102,104,106实质上类似于8259A的相应寄存器。Intel 8259A所用的这些寄存器与本实施例相应寄存器的区别将在下面说明。\nICW5寄存器108是本实施例的一个显著特点。因为本发明的目的是要提供这样一种可编程中断控制器,可以对多个中断请求输入的每一个编程为对沿敏感或者对电平敏感,ICW5寄存器108包含的位相应于每个中断请求输入。每位可编程为二个状态中的一个,这两个状态分别相应于对沿敏感和对电平敏感。这样,根据本发明,用户就可通过对图3所示的中断控制器编程,实现对所述的每个中断是沿触发或电平触发的选择。\n记住这一点,不难看出本发明的可编程中断控制器不一定与上述 严格的结构相一致。不同类型的中断控制器会有不同类型的编程特性。完全可以在其它中断控制器中通过用控制寄存器来设定配置参数。並且,类似的配置参数也可以采用与下面结合初始化控制寄存器所述的编程不相同的定义。但是,只要多个中断请求输入的每一个都可编程为对沿敏感或者对电平敏感,不管它采用ICW5寄存器108或者通过其它方式实现,任何这种可编程中断控制器都将落入本发明的精神和范围。\n如下所述,与Intel 8259A的反面兼容性是通过使用Level/ EDGE(电平/ 沿)位来实现的。但8259A是用一个比特的编程使所有中断请求输入是沿敏感或电平敏感,本发明优选实施例中是用该同一比特来选择或者所有中断请求输入都对沿敏感或者通过ICW5寄存器108的各比特对每个中断请求输入进行选择。以这种方式来使用LEVEL/ EDGE位是本发明的另一显著特点。本发明实施例是以这种定义实现了与Intel 8259A的向后兼容性,其它可编程中断控制器也可采用适当形式的适合自己的参数配置的定义来实现与其现存中断控制器的向后兼容性。\n此外,图3也示出了提供给所有初始化命令字寄存器的各种系统信号。这些都是些常用信号。它们是标准的计算机数据总线、地址总线和控制总线信号。比如,线DATA8-DATA7是数据总线信号。它们是单独的线,合起来就构成了图2所示的8位数据总线64。Ao是使质地址总线的最低有效位。许多大规模集成电路,比如接口器件和中断控制器,可以使用存贮器映射的输入/输出进行编程。这是一种常用的编程技术,它可以用一个或几个存贮器地址对外设比如接口器件或中断控制器编程。那里,一个或多个地址输入指向 该器件,可通过硬件把系统地址总线接到这些输入,以提供通过软件程控的寻址能力。最后,信号I/O WRITE PULSE(I/O写脉冲),Cclk及Bclk是传统的控制信号。尤其是本优选实施例利用两条单独的时钟信号Cclk和Bclk。通常,若它们有给定的相互相位关系时,可用多个时钟输入信号。在另一些常用系统中,可用单时钟信号。\n现转向图4,它给出了ICW1寄存器100和用以对其写入的逻辑的详细电路图。ICW1寄存器100的写入是通过系统时钟Bclk和Cclk实现的。与门110提供了适当条件下使系统时钟Cclk到达ICW1寄存器100的C输入112的使能信号。ICW1寄存器的B输入114直接连到系统时钟Bclk。为了使CPU能对中断控制器8内的各个寄存器寻址,地址线 A 116和I/O WRITE PULSE118必须为高。当数据总线64的DATA4数据线是高时,该命令被解释为直接送到ICW1寄存器100。所以,DATA4也要接到与门110。\n数据总线64上的数据比特被以传统方式写入ICW1寄存器100,以提供表征所述中断控制器配置的各种定义信号。根据本发明的优选实施例中,ICW1寄存器的第三位是电平/ 沿位120。在8259A中断控制器中,由一位定义了所有中断请求输入是电平敏感还是对沿敏感。本发明的该实施例中,电平/ 沿120的功能已被修正,以提供与8259A的兼容和本发明的对每中断的选择能力。若电平/ 沿位是低,所有中断请求输入都对沿敏感,若它是高,中断请求输入可编程为对每一中断是沿敏感或者电平敏感。要知道具体怎样对每一中断请求输入编程,可参看下面结合ICW5字存器 108的说明。让ICW1字存器100的第3位取这样的含义是本发明实现的一种具体方法,它也提供了向后兼容性。因为采用8259A的许多老系统使用产生沿触发中断请求的外围设备,系统软件中8259A的配置一般是把ICW1寄存器的第3位编程为低以适应沿触发。因此,把本发明中断控制器的该位编程为低,它将以8259A同样的方式工作。换句话说,采用新的电平触发外设和本发明的中断控制器的新系统可方便地把电平/ 沿位编程为高,从而提供对每中断输入的中断选择能力。\n要实现本发明的具有向前兼容的中断控制器,上述方法被认为是执行本发明的最好方式。但是,应该明白实现沿触发和电平触发中断的其它方法都处于本发明的精神和范围内。比如,LEVEL/ EDGE位可以这样定义:它是高时,所有中断请求输入都配置成电平敏感,而当它为低时,可对每个输入进行选择。或者换一种方法,不要电平/ 沿位,而对每一中断请求输入总是用下面将要说明的ICW5的相应位来定义。也可以把电平/沿位120的状态倒转,即,它为高时相应于沿触发的中断请求,这样它就是沿/ 电平位了。\nICW1寄存器的第 位是IC4位122,若该位是1,就对ICW4寄存器106编程,它里边的数据定义了中断控制器的参数,正如下面结合图5和图9A-9E的表所述的那样。若IC4位122是零,则ICW4寄存器不编程,则其参数被设置成其空缺(缺省)值,就如下边结合图9E所说的,它描述了IC4位122是低的情况。\n图4也给出了ICW1寄存器的第1位,它是Single/ CASADE(单级/ 级联)位124。在一系统内有多个中断控制器 时,这一位按传统的方式使用。主中断控制器可以使用至多八个从控制器,就可以处理高达有64个优先级别的64个中断请求输入。正如图2所示及早先所述,级联控制84有一个三位的级联总线86。若把单级/ 级联位编程为低,从而选样了级联方式,该控制器就被配置成主控制器(正如后面ICW4寄存器106所说明的),则构成级联总线86的三条线是输出,用以选择八个从控制器之一。\n图4也画出了与门126及反相器128,它们产生一ICW1信号的高真和低真信号。与门126的输入分别接收系统I/O WRlTE PUlSE 118、地址线 A 116和DATA4,数据总线64的第4位。当时ICW1寄存器100写入时,与门126就输出一个与I/O WRLTE PULSE 118相同步的信号ICW1。当从ICW1寄存器开头的编程序列开始时,就用该信号ICW1清其余的ICW寄存器,以便能对这些寄存器顺序编程。\n参看图5,它揭示了ICW4寄存器106及其相关逻辑。正如对其它寄存器一样,ICW4寄存器106被系统时钟BCLK所钟控,其使能信号由使能逻辑电路产生。因为本优选实施例中,ICW2及/或ICW3寄存器102,104的写入是写入ICW4寄存器106的条件,该使能逻辑电路接收表让寄存器102,104已被写入完了的信号。这些信号分别叫COMPL、ICW2和COMPL ICW3,並在图3是用130和132表示。因为它们具有传统的配置,ICW2和ICW3寄存器102,104在本发明中不做详细说明。该电路包括一与门134,它接收输入信号COMPL ICW2(表示ICW2寄存器102已被编程)和ICW1寄存器100的单级/ 级联位124。或门136的 输入接与门134的输出和信号COMPL ICW3,它表示ICW3寄存器104已被编程。正如图3所示及后面所说的,在单级方式下不对ICW3寄存器104编程。因此,对ICW4寄存器106的编程只能在或者ICW3寄存器编程完毕,或者在单级方式下对ICW2寄存器102编程完毕后进行。\n或门136的输出接到与门138的输入。当所有必要的予定要求满足时,与门138产生一输出信号,它使系统CCLK通过与门140到达ICW4寄存器106。或门136的输出是一个予定要求。此外,I/OWRLTG PULSE118和地址线A 116也是使CCLK到达ICW4不用的数据总线64的第5、6和7位必须是低。这三位被反相后把有效高电平送到与门138的输入端。\n图5也提供了在所有ICW寄存器被编程完毕后启动可编程中断控制器8工作的电路。若电平/ 沿位120是高,控制器8在ICW5寄存器108编程后生效。如将在下面说明的,对ICW5寄存器108的编程是要对每个中断选择沿触发或者电平触发。若LEVEL/ EDGE位120已被编程为低,所有中断请求输入的缺省值是对沿敏感。因此,当电平/沿位是高且ICW5寄存器已被编程后,由与门142提供可编程中断控制器8的使能信号ICW5 COM-PLETE144。\n一个SET/RESET(置位/复位)锁存器146产生信号COMPL ICW4,148,它表示ICW4寄存器106已被写入完毕。锁存器146也同以指示可编程中断控制器8已编程完毕。这里电平/ 沿位120是低,它表示中断控制器8处于缺省情况,即所有中断输入均对沿敏感,不必再对ICW5寄存器108编 程。所以,在对ICW4寄存器106编程后,中断控制器8已开始工作了。\n电平/ 沿位120被反相器150倒相,当它高对表示对沿敏感。锁存器146的高真输出152与倒相的电平/ 沿位120一起送到与门154。与门142和154的输出都接到或门156。或门156的输出是可编程中断控制控制器使能(PIC ENABLE)信号158,当它是高,表示可编程中断控制器8已可工作。往反相器160倒相后,它产生 PIC ENABLE电平有效信号表示可编程控制器8已被使能的场合。\n锁存器146被系统CCLK和BCLK所钟控。当CPU4开始对ICW寄存器编程时,锁存器146被拍入一低电平。所以锁存器146的低真输出端164是高,允许与门138接收ICW4译码信号。当ICW4被写入且与门138输出为高时,或门166为高,使与门170的第一输入为高,与门170的输出接到锁存器146的效据输入端172。与门170的第二输入174接到 ICW1。 ICW1只在对ICW1寄存器100写入从而开始对ICW寄存器组编程时才为低。所以,当 ICW1信号为低时,锁存器146被拍入低电平。这时锁存器146的低真输出164为高,开启与门138。锁存器146的高真输出152为低,而使或门166维持低状态直到与门138的输出变高为止。锁存器146最终在ICW4寄存器被写入时变高,因为与门138的输出变高,允许CCLK通过与门140到达ICW4寄存器106的C输入端,它也使或门166输出变高,从而使与锁存器146的数据输入172相连的与门170的输出变高。这样,当LEVEL/ EDGE位 120是低时,在ICW4寄存器106被写入的同时,就使PICENABLE信号变高。\n图5也画出了表征中断控制器8各种配置的ICW4寄存器中的各位的含义。总的说,它们的定义与INTEL8259A相一致。把数据总线64的相应位的值写入ICW4寄存器就可实现对它们的编程。本发明实施例特别感兴趣的是下述位。微处理器方式(uPM)位176应根据与中断控制器8一起工作的微处理器的型号来设定。若UPM位176为低,与控制器8一起工作的微处理器是8080或8085微处理器,这时,中断控制器8可提供16位中断服务程序地址。若UPM位176是高,中断控制器可提供8位中断矢量以与8086微处理器一起工作。主/从(M/ S)位178定义了中断控制器8是主或者从控制器。该位用于级联方式,这时,从控制器的中断请求输出接到主控制器的中断请求输入。\n自动中断结束(AEOI)位180若编程为高,可使可编程中断控制器8在收到中断应答线72上的最后一个中断响应脉冲时,使中断操作自动完成非限定的结束。AEOI位180也可以按常规方式与循环中断请求优先一起使用。自动中断结束方式中可以使用循环优先。\n现参看图6,它画的是ICW5寄存器108。ICW5寄存器有8个数据输入,每个对应于一个中断请求输入。数据总线64可以通过与门182,184,186,188,190,192,194,196到达ICW5寄存器的每个输入端。当对寄存器108写入时,数据总线64的数据位被装入寄存器108,以驱动输出信号LEVEL/ EDGEIRQo-LEVEL/ EDGEIRQ7, 从而对每一中断确定该输入是对电平敏感还是对沿敏感。\n图6也画出了能使系统CCLK到达ICW5寄存器的使能逻辑电路。 PIC EN ABLE162应是高,它表示对ICW寄存器组的编程正在进行但还未完成。COMPL ICW4应是高,表示ICW4寄存器也被写入。该线路包括一与门198以使系统时钟CCLK能通过它到达ICW5寄存器108的C输入端。与门198接收 PIC ENABLE信号162和COMPL ICW4信号,以及地址线Aφ116和I/O WRITE PULSE 118。\n另一与门200的连接能接收系统Cclk和高真的ICW1信号。与门198和200的输出接到或门202,其输出接ICW5寄存器108的C输入。与门200的加入是为了在写ICW1寄存器100的同时能对ICW5寄存器写入。与门182到196由于接到信号 ICW1而被关闭,这时 ICW1是低。因为这些信号无效,所以在对ICW1寄存器写入时,与门182到196全是低,从而使ICW5寄存器各位全清零。这样,若电平/沿位低时,ICW5的各位被全清,这就表示所有的中断请求输入全对沿敏感。每一与门有两个输入,一个接到内部数据总线64的一条数据线,另一个接 ICW1信号。 ICW1只在写ICW1寄存器100时为低电平。所以,所有ICW1寄存器的输入全是低。同样,CcLK使能逻辑包括一与门200,它的输入与ICW1信号和系统Cclk相接。所以,当写ICW1寄存器时,将有一个时钟脉冲到达ICW5寄存器108的C输入。这就保证在写ICW1寄存器时,能把ICW5寄存器清零。若此后还要对ICW5寄存器写入,那时再建立它的最终值。若不再写ICW5寄存器,所有中断请求输入都被配 置成对沿敏感。\n图6也画出了置位/复位锁存器204,它类似于ICW4寄存器相关的置位/复位锁存器146。通常锁存器204为高,但在写ICW1寄存器100时它被清零。这是通过与门206实现的,与门206的输出接锁存器204的D输入,其一个输入接 ICW1。如上所述, ICW1只在写ICW1寄存器时才变低。所以,这时把低电平拍入锁存器204。当 COMPL ICW4变高,表示ICW4寄存器已被写入,並且PIC ENABLE162是高,表示ICW4寄存器已被写入,而与图5中的置/复位锁存器146的D输入相连的逻辑还没有使中断控制器8允许工作的时候,锁存器204被置位。这些信号被输入到与门208,当所有上述条件都满足时,门208的输出变高。与门208的输出接到或门210的第一输入。其第二输入接锁存器204的输出。这样,一旦锁存器变高,即使这时与门208变低,或门210的输出也保持为高。因此,在通过写ICW1寄存器100而重新启动编程序列之前,拍入锁存器的都是高电平。 ICW1变低,与门206输出变低,並把低电平拍入锁存器204。或门210的输出和 ICW1信号接到与门206的输入。\n前面已经描述了本实施例中实现图2所示的可编程中断控制器8的初始化命令字寄存器组。\n图7给出了中断请求寄存器(IRR)66(图2)的详细逻辑图。IRR66由8级组成,每级相应于一个中断请求输入。典型的一级212示于图7。应知道整个IRR6包括八级,即由如图7所示的八个组成。也应明白,本发明的精神和范围的可编程中断控制器 中可以包含任何合适数目的这种级。\n根据本发明,图7包含检测沿触发中断请求的硬件和检测电平触发中断请求的硬件。输入信号214是一称为LEVEL/ EDGEIRQn的信号。该信号表示对应于级212的一中断请求输入是沿触发或者是电平触发的。LEVEL/ EDGEIRQn信号214可以是图6所示的ICWS寄存器八个输入信号中的任何一个。它也画用了输入信号IRQn。它是图2所示中断请求输入中的任一个。根据LEVEL/ EDGEIRQn信号214状态的不同,可以用图7所示硬件的适当部分来检测中断请求並把它锁存到IRR66的相应位。\n在电平检测情况下,LEVEL/ EDGEIRQn信号214为高,从而使得中断请求IRQn216能通过与门218及或门220到达一暂稳定锁存器222的数据输入端224。该暂稳锁存器222被系统时钟Bclk以及通过以 FREEEE信号226为使能的与门228被系统Cclk所钟控。 FREEEEE信号226通常为高,並且只有在对电平触发的中断请求的检测可以被延迟的中断响应周期内它才变低。\n暂稳锁存器222的输出经或门230送到与门232的输入。与门232的其它输入包括 ICW1信号(它除了在对ICW寄存器64编程期间外都是高电平)和 SET ISRn234。后一信号是脉冲,通常是高,只在图2所示的中断服务寄存器(ISR)88的相应位置位时它才是低电平。所以,暂稳锁存器222的输出通过与门232到达中断请求寄存器(IRR)锁存236的输入端。锁存器236贮存中断请求,从而使中断控制器8可用它去中断CPU4, 並向CPU4提供确定执行哪一个中断服务程序的合适信息。\n如上所述,若 FREEEE是低,表示电平触发中断请求出现时的中断响应周期,则在中断响应结束以前,中断请求将不锁入该暂稳锁存器222。\n在中断被响应期间内,根据由ICW4寄存器的uPM位176所选定的中断控制器8所配合的8080/8085系统或8086系统的不同,在INTA线72上将有三个或二个脉冲。在响应中断期间,IRR锁存器236被复位,而ISR88中的相应位被置位。当该ISR位被置位时,信号 SET ISRn234发出一低电平脉冲。因此,与门232输出产生一低电平脉冲並把一低电平拍入IRR锁存器236。不管暂稳锁存器222的状态如何,都是这样。在中断响应期间並且若干数目的 INTA脉冲过后,该IRR位被清零而该ISR位被置位。若把ICW4寄存器的AEOI位编程为高而选择了自动中断结束(AEOI)方式,则该ISR位在最后一个 INTA脉冲结束时复位。否则,在中断服务程序发出适当的EOI命令时,该ISR位被复位。在最后的 INTA脉冲结束时, FREEEE变高,Cclk被送到暂稳锁存器222的C输入端。此外,IRR锁存236的数据输入通过或门229和与门232被使能。所以,暂稳锁存222的输出就被锁存到IRR锁存236。\n在沿触发操作中,图7下部的硬件的工作基本上与上述情况一样。但是,其上部的硬件将检测並锁存沿触发的中断请求並提供锁存的中断请求到或门220的输入。沿触发中断请求被经过反相器238的LEVEL/ EDGE IRQn信号所使能,並通过与门240到达沿检测器242的输入。沿检测器242的输出通过或门244 到电平变换器246的输入。\n图8A和8B给出了图7的沿检测器242的两种最佳实施例。首先参看图8A,它有一个锁存器248和与门250,该与门的两个输入分别接锁存器248D输入和低真输出。当收到一沿触发中断请求时,IRQn信号216产生一从低状态到高状态的跳变。为能检测有效沿,该跳变必须在指定的时限比如一个时钟周期内发生。系统时钟Cclk和Bclk连续出现,就把该输入信号锁存到锁存器248′。当发生跳变时,在现存低输入的前一时钟周期已被锁存到锁存器248(一个低电平),使其低真输出为高,而跳变后的输入也是高。在这一时间间隔内,与门250的两个输入都是高。与门250输出的信号在一个时钟周期内是高。这一高电平被锁存到电平变换器246。回过来看图7,可以看出,电平变换器246的高真输出被返回到与门252的一个输入,其输出被接到或门244的输入。这样,当电平变换器246被锁入高电平时,它就维持为高,直到E ET ISRn变低或者 ICW1变低,这表示初始化命令字正被重新编程。这就有效地把沿触发中断锁定在高状态。电平变换器246的输出再被送到或门220的输入。此后,锁存的沿触发中断就作为前述的电平触发的中断来处理。\n参看图8B,它是沿检测器242的第二实施例。该实施例与图8A的不同之处在于在锁存器248之前有一同步锁存器254。IRQn输入接到同步锁存器254的D输入,其输出接沿检测锁存器248的输入以及与门250。该锁存器248和与门250的工作实质上与图8A实施例中的一样。不同之处在于同步锁存器用系统Cclk和Bcck对沿触发中断请求进行同步。这提供较大的工作 可靠性,並使同步锁存器254的定时特性取决于沿触发中断请求IRQn的定时特性。\n图9A-9E中的表给出了各种配置下的初始化命令字编程序列。除了ICW1,ICW4和ICW5寄存器100,106,108之外,也给出ICW2和ICW3寄存器102,104。在每一情况下,配置的特征被写在下部,实现这种系统配置具有要求的值的那些位用所要求的值标出。看图9A,可编程中断控制器8配置成级联方式。所以,ICW1的第1位单级/ 级联位被编程为 。控制器8也被设置成与Intel 8080或8085微处理器一起工作,ICW4的第0位,uPM位176被置成。並且ICW2寄存器和ICW1寄存器的高三位被编程为A15~A5,它提供包含中断服务程序地址表的存贮器的页面地址。地址间隔(ADI)位,ICW1的第二位可以是“1”,表示中断服务程序地址间的间距是4个字节;它也可以是“ ”,表示中断服务程序地址间的间距是8个字节。后一情况下,ICW5寄存器100的第5位不用。最后,因为中断控制器8被设置成级联方式,並且要使用一个主和一个或多个从中断控制器,该具体中断控制器8被编程成主控制器。所以要把ICW4的第3位,BUF位置成1,即缓冲方式,並把M/5位178,ICW4的第2位置成“1”,即主控制器方式。\n转向图9B,它所示的编程配置与图9A的相同,只是其可编程中断控制器8被设置成使用8086及8088微处理器。差别在于ICW4的第 位uPM位176是“1”。图9A所示的ICW1和ICW2寄存器的中断程序地址位处,图9B的ICW2寄存器的第7-3位包含送给CPU4的中断矢量的高五位。该矢量的其余低 3位由有效的中断请求输入IRQn确定。\n参看图9C,它与图9A的差别只是其中断控制器8被设置成从控制器。只要把ICW4的第2位(M/5位)设置成 即可。\n转向图9D,它与图9A配置的区别在于它不是级联方式,而是将中断控制器8配置成单级方式。这是通过把ICW1的第1位(单级/ 级联位)置成“1”来实现的。同样,缓冲方式位BUF(ICW4的第3位)被置成“ ”,因为这里不适合用缓冲方式。並且M/5位178的值没有关系。应注意,图9D的编程序列中省去了ICW3寄存器104。ICW3寄存器包含的信息只在主控制器及一个或更多从控制器都存在时才有意义。在如图9A的主控制器情况下,ICW3包含的8比特S7~S ,当它们置“1”时,相应于它们的中断请求输入附接有从控制器。在图9C所示的从控制器情况下,ICW3的低3位提供一标识值,它相应于该从控制器是接到主控制器的那一个中断请求输入端。再者,由于单中断控制器时与M/5位状态无关,所以单级时可省去ICW3寄存器104。\n最后看图9E,它给出了省却ICW4寄存器的编程设置。ICW4寄存器是否要编程取决于ICW1寄存器的IC4位(第四位)。图9A-9D中,IC4位都置成“1”。但在图9E中,IC4位是 。因此,省略对寄存器ICW4的编程並将它的相应位设置成空缺值。首先,系统设置成就如像ICW4的第 位是 ,表示与8080/8085微处理器一块儿使用。其次系统配置就好像ICW4的第3位(BUF位)是 ,即系统处于非缓冲方式。当中断控制器8配置成非缓冲方式时,硬件信号 SP/ EN按输入处理,其状态决定中断控制器设置成主或者从控制器方式。图9E中,假定 SP/ EN信号是高。根据这个假定,它被设置成主控制器方式。\n总括说来,本发明提供了一种具有多个中断请求输入,每个输入都可检测从外围设备来的或者沿触发或者电平触发中断请求信号的一种可编程中断控制器。正如实施例中所述,ICW5寄存器中有对应于每个中断请求输入的位,它可被编程为二个状态之一,这两种状态分别相应于沿触发或电平触发。这些位是按每位编程的。所以,中断控制器的中断请求输入可按每个中断编程为对沿敏感或者对电平敏感。因为中断请求输入可以这种方式设置成对沿敏感或对电平敏感,就可能用这种中断控制器通过改变沿触发或电平触发中断请求的混合而使系统升级。这样,系统可以容纳较新的电平触发的外围设备而仍保持对较老的沿触发外设的反向兼容。並且,通过使用LEVEL/ EDGE位120,该中断控制器可以设置成与Intel 8259A中断控制器相一致。因此,本发明的中断控制器对为8259A编写的软件具有反向兼容性。\n然而,前面所述的只是本发明较好实施例的代表,应该知道,本发明並不限于所述实施例。而是,只要以适合于其特定中断控制器结构的某种方式提供对多个中断请求输入对每个中断选取是沿触发或者电平触发,就可以用其它类型的中断控制器来实施本发明。
法律信息
- 2009-12-30
专利权的终止(未缴年费专利权终止)
专利权的终止(未缴年费专利权终止)授权公告日:1993.5.19
- 2006-12-06
专利申请权、专利权的转移专利权的转移
<变更事项>专利权人<变更前权利人>国际商业机器公司<变更后权利人>联想(新加坡)私人有限公司<登记生效日>2006.10.27
- 2006-12-06
专利申请权、专利权的转移专利权的转移
<变更事项>地址<变更前权利人>美国纽约<变更后权利人>新加坡 彰宜<登记生效日>2006.10.27
- 2002-04-24
- 1993-05-19
- 1991-06-12
- 1991-03-13
实质审查请求已生效的专利申请
实质审查请求已生效的专利申请
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 1 | | 2011-04-06 | 2011-04-06 | | |
2 | | 2011-04-06 | 2011-04-06 | | |