本发明与下列美国专利申请有关:USSN 07/569,935、07/917,497、07/917,488、07/917,503、07/918,627、07/918,626、07/918,625、07/918,624、07/918,631、07/918,632、07/918,622、07/918,621。 除了列出的第一个外,全部相关申请都在同一天申请,并转让给本发明受让人,通过对其引用,按其完整性归并在此。列出的第一个相关申请在1990年8月20日申请,已转让给本发明的受让人,通过对其引用,也按其完整性归并在此。
本发明一般来说涉及处理系统,更具体地说涉及需进行外部存储器存取的处理系统。本发明尤其涉及一种改进的处理系统外部存储器存取控制,它通过建立起独立于外部存储器存取速率的外部存储器使能时间,减少处理系统的功率消耗。
如名称也是“改进的处理系统外部存储器存取控制”、目前待审的转让给本申请受让人的美国专利申请Ser.No.07/569,935中所叙述的,本技术领域中众所周知至少包括一个微处理器的处理系统。在这种处理系统中,通常需要由微处理器对外部存储器存取数据和/或指令。而且这种基于微处理器的处理系统,通常都具有在单位时间执行大量操作的高活动量时期,穿插着单位时间执行相对少的操作的低活动量时期。
为降低在低活动量期间这类处理系统的功率消耗,在已有技术中通常用降低微处理器的外部存储器存取速率的方法来实现,典型地是通过采用可变速率的振荡器时钟源,或是一个与微处理器配合的时钟分频电路来降低外部存储器存取速率。因为微处理器通过总线与外部存储器通信,因而外部存储器存取速率也可以称为总线存取速率。
上述在已有技术中通过降低外部存储器存取速率来降低低活动量期间功率消耗的方法,就数字式CMOS逻辑系统而言,通常都是有效的,这是因为数字式CMOS逻辑系统地功率消耗基本上与单位时间内发生的信号跃变次数成正比。事实上,数字式CMOS逻辑电路的大部分功率是在其内部信号和输入信号改变时消耗的,而相反地当其内部信号不变时它只消耗极少的功率。
然而,诸如随机存取存储器(RAM)器件和电气可编程的只读存储器(EPROM)器件之类的标准商售存储器器件不同于数字式CMOS逻辑电路,这些器件只要它们的使能输入保持在活动状态就要消耗功率。因而,这类器件的功率消耗除取决于存储器存取速率(芯片使能信号CHIP ENABLE的跃变频度)以外还取决于存储器处于使能状态的时间总量(芯片使能信号CHIP ENABLE保持为活动的时间总量)。尽管技术上能够得到只在内部和外部信号跃变时才消耗功率的RAM和EPROM器件,但这些器件会太复杂,而且从一项设计用于所有应用的经济尺度来衡量,这也是不利的。
在现行的基于微处理器的处理系统中,外部RAM和/或EPROM的CHIP ENABLE信号是在微处理器内译码得到的,或是由微处理器外部的逻辑电路从微处理器提供的总线控制信号译码得到的。典型的总线控制信号以8031类型的微控制器为例而言,包括地址线、ALE、PSEN*、RD*和WR*。这些总线控制信号的名称和功能对于各种微处理器/微控制器是各不相同的,但向微处理器外部的器件提供使能和定向信息的基本概念还是相同的。
已有技术对于这种应用和与之有关的那些应用的局限,就低功率处理系统的运行而言,在于当降低现行微处理器和控制器的存储器存取速率以图节省系统功率时,微处理器提供的总线控制信号的宽度(外部存储器使能时间)与该处理器的总线速率(外部存储器存取速率)成反比变化。因而,尽管处理器的外部存储器存取速率下降,但外部存储器使能时间却成比例地上升。因此,存储存取速率越慢,则外部存储器使能时间越长。外部存储器器件处于使能状态的时间比完成外部存储器器件存取所需的时间长得多,因而造成系统功率的浪费。
上面提到并通过引用归并于此的美国专利申请Ser.No.07/569,935,提供一种包括一个处理器在内的处理系统,它能使并非专为很低功率设计的标准商售存储器器件的功率消耗下降。美国专利申请Ser,No.07/569,935向这种处理系统提供一种外部存储器存取控制系统,它能使外部存储器的使能时间独立于单位时间内的外部存储器存取次数。在有关应用中提出的这种控制系统通常是有效的和有用的,而在某些应用中出现的一些特性,还可以被利用来造出更为简单的控制系统。本发明将说明一种在具有可编程时钟速度的场合下可以容易和简单地构成的控制系统。
本发明提供一种用在其处理器对外部存储器存取数据和/或指令的这类处理系统中的改进的外部存储器存取控制系统。根据本发明说明的改进的外部存储器存取控制系统,为减少处理系统的功率消耗,将提供独立于单位时间外部存储器存取次数的外部存储器使能时间。为确定外部存储器存取速率,本发明的控制系统包括能提供其速度是至少两种速度之一的时钟信号的可选择可编程时钟。该控制系统还包括与可选择可编程时钟相连的使能时间控制结构,该结构的设计使外部存储器在各次存储器存取期间的使能持续时间与外部存储器的存取速率独立。而且,该使能时间控制结构还包括根据所选定的时钟速度来改变外部存储器使能时间控制信号工作周期的子结构。
因而,本发明的目的在于提供一种降低在存储器低频存取的处理系统中功率消耗的结构和方法。
本发明另一目的在于提供一种在包括有微控制器的电池驱动设备中保存其电力的结构和方法。
本发明还有一个目的在于提供一种使某些处理系统得以简化和改善效率的结构和方法。
为对本发明有更完整的理解,和了解其他的目的和优点,可结合以下附图参考后面的详细说明。
图1是微控制器系列总体结构的方框图。
图2是图1所示的微处理器系列总体结构更为详细的方框图。
图3是实施有关美国专利申请Ser.No.07/569,935发明的处理系统的方框图。
图4(包括图4a和图4b)是包含本发明的改进的外部存储器存取控制系统在内的集成电路的方框图。
现参见附图1,该图示出由本发明受让人制造的8051微控制器系列的总体结构的方框图。下面即将叙述这个系列的微控制器的各个方面。叙述的目的在于说明本发明可以有利地应用的环境,并对已有技术的微控制器的操作提供一般的背景技术;但此叙述并非意味,也不该被视作是对本发明范围的限定。
参见图1,可以看出8051系列产品包括CPU2、振荡器和定时电路4、只读存储器/可电方式编程的只读存储器(ROM/EPROM)6、随机存取存储器(RAM)8、控制电路10、定时器/计数器12、可编程串行端口14、和可编程I/O16。
所有8051系列器件具有分离的地址空间用于程序存储器和数据存储器。程序和数据存储器的逻辑分离允许按8位地址存取数据存储器,这就能够用一个8位CPU更迅速地存储和操作。尽管如此,16位数据存储器地址还是可以通过不同的8051微控制器器件中的不同专用寄存器产生。
在8051系列产品中程序存储器只可以读出而不能写入。可以有高达64K字节的程序存储器。数据存储器占据着与程序存储器分离的地址空间。高达64K字节的外部RAM可以在外部数据存储器空间内编址。按各种8051系列器件中外部数据存储器的需要,CPU2产生读出和写入信号RD*和WR*。将RD*和PSEN*(程序存储使能)信号加到与门输入端并将该门的输出用作外部程序/数据存储器的读出选通信号,可以使外部程序存储器和外部数据存储器结合。
振荡器和定时电路4包括一振荡器,它驱动一个向芯片提供内部时钟信号的内部时钟发生器。内部时钟信号频率为振荡器频率的一半,由它确定内部的相、状态和机器周期。一个机器周期包括6个状态(12个振荡周期)。每个状态被分为相1半个状态和相2半个状态,在相1半个状态期间相1时钟是活动的,而在相2半个状态期间相2时钟是活动的。这样一个机器周期包含有12个振荡周期。每一相持续一个振荡周期。每一状态持续两个振荡周期。典型地,算术逻辑运算在相1期间发生,而内部的从寄存器至寄存器的转移在相2期间发生。
图1中示出的与可编程输入/输出电路14连接的全部四个端口部是双向的。每个端口包括一锁存器(专用功能寄存器P0至P3)、一输出驱动器、一输入缓冲器。端口Port0和Port2的输出驱动器、和端口Port0的输入缓冲器用于对外部存储器的存取。在此应用中,端口Port0输出外部存储器地址的低字节,与正在读/写的字节一起分时复用。当地址是16位字长时端口Port2将输出高字节外部存储器地址。否则,端口Prot2将通过引脚继续送出P2专用功能寄存器(“SFR”)的内容。端口Prot3的全部引脚(在某些情况下还有端口Port1的两个引脚)都是多功能的。它们不仅是端口的引脚,还兼有诸如定时器/计数器外部输入端和定时器/计数器俘获/重新加载触发器之类的各种特殊功能。
至于对外部存储器的存取,8051系列的器件对外部存储器的存取有两类:对外部程序存储器的存取和对外部数据存储器的存取。对外部程序存储器的存取是将信号PSEN*(程序存储使能)用作读出选通信号。对外部数据存储器的存取则用RD*(外部数据存储器读出选通信号)或WR*(外部数据存储器写入选通信号)来选通存储器。从外部程序存储器取出指令一般采用16位地址。而对外部数据的存取则采用16位地址或8位地址。当采用16位地址时,地址的高字节就送出到端口Prot2上,在那里保持一个读出或写入周期的时间。应该说明的是端口Port2驱动器在它们送出为1的地址位的整个时间内须采用上拉电压。在这期间端口Port2的锁存器(专用功能寄存器)不一定要含1,且端口Port2的SFR内容不被修改。若外部存储器周期并非在其面紧接着另一个外部存储器周期,则端口Port2的SFR未受干扰的内容将在下一周期重现。若采用8位地址,端口Port2的SFR内容在整个外部存储器周期一直位于端口Port2的引脚处。这便于分页。在任何情况下,地址低字节与数据字节总是在端口Port0上分时复用。端口Port0输出缓冲器中的两个场效应晶体管由一个地址/数据信号驱动。这样,在这类应用中端口Port0的引脚并非开路的漏极输出,不需要外部上拉电压。信号ALE(地址锁存器使能)用来将地址字节俘获送入一外部锁存器。该地址字节在ALE负跃变时是有效的。接着,在写入周期内,要写入的数据字节在WR*刚激活之前就出现在端口Port0上,并一直维持到WR*失效。在读出周期内,输入进来的字节在读出选通信号刚要失效之前在端口Port0处被接收。
在对外部存储器的任何一次存取期间,CPU2将OFFH写到端口Port0的锁存器(专用功能寄存器)中,这样就将端口Prot0的SFR(专用功能寄存器)可能保存着的任何信息都清除掉。
在两种情况下将对外部程序存储器进行存取:(1)不论何时只要信号EA*是活动的;或者,(2)不论何时只要程序计数器(PC)所含的数比0FFFH(对于某些系列器件为1FFFH)大。这需要在没有ROM的版本中令EA线为低,以便编程字节中较低的4K(对于不同的系列器件或者为8K)字节可从外部存储器取出。当CPU正在执行来自外部程序存储器的指令时,端口Port2的全部8位就专用于输出功能,不再用作通常的输入输出。在外部程序取指期间,它们输出PC的高字节。在这期间,端口Port2驱动器采用正上拉电压送出PC中的“1”位。
外部取指的读出选通信号是PSEN*,它在内部取指时不被激活。当CPU正对外部程序存储器存取时,PSEN*每周期被激活两次(但在传送进位位或“MOVX”指令期间例外),而不论该字节的取出对当前的指令是否是实际需要的。当PSEN*被激活,其时序与RD*是不同的。完整的RD*周期包括ALE和RD*的激活和去激活,花去12个振荡周期。完整的PSEN*周期包括ALE和PSEN*的激活和去激活,只花去6个振荡周期。
ALE的主要功能是在从外部程序存储器取指期间,提供一合适的定时信号用来将某一地址的低字节从P0锁存到外部锁存器。为此目的,ALE在每机器周期内被激活两次。这种激活即使当该周期不涉及外部取指时也会发生。只在对外部数据存取期间时才不出现ALE。在MOV X指令中,第二周期的第一个ALE是不存在的。由此可知,在不使用外部数据存储器的任何系统中,ALE是以振荡器频率1/6的恒定速率被激活的,并可以用作外部时钟或其它定时用途。
在一些应用中,希望用同一物理存储器来存储数据和程序。在8051系列中,外部程序和数据存储器的空间可以通过PSEN*和RD*的相“与”而组合在一起。这两个信号的正“逻辑与”产生一个可用于上述组合起来的物理存储器的低激活读出选通信号。因为PSEN*周期比RD*周期短,因而外部存储器需足够快以适应PSEN*周期。
8051系列器件具有两个16位定时器/计数器寄存器:定时器timer0和timer1。某些系列器件还多一个:定时器timer2。所有这类定时器都可以按定时器或事件计数器工作。当执行“定时器”功能时,该寄存器每一机器周期计数增1。这样,可以将它视作对机器周期的计数。机器周期包含12个振荡周期,故计数速率是振荡器频率的1/12。执行“计数器”功能时,寄存器将响应在相应的外部输入引脚T0、T1、T2处出现的1至0跃变使计数递增。在此功能中,外部输入在每个机器周期的部分期间内被取样。当取样表明在1个周期中为高电平,而下一个周期为低电平时,该计数便加1。在检测出上述跃变的那个周期之后的下一周期的部分期间内,新计数值将在寄存器中出现。它识别出1至0的跃变要花2个机器周期(24个振荡周期),因而最大计数速率是振荡频率的1/24。对于外部输入信号的工作周期无限制,但为了确保对给定电平在其变化之前至少取样一次,它应该至少保持一个完全的机器周期。除了“定时器”或“计数器”选择之外,定时器timer0和timer1具有四种可供选择的工作模式。任何一个定时器若置为模式0,便成为一个预除以32的8位计数器。模式1除了定时寄存器是按16位运行的以外,其他与模式0均相同。模式2将定时寄存器构成为能自动重新加载的8位计数器。模式3下的定时器简单地保持其计数。
现在参见图2,它示出的是图1所示的微控制器系列总体结构的更详细方框图。图2就本发明而言需特别注意,因为它描述了前面提到的PSEN*信号(由标号18标注),该信号可对本发明实施例起到重要的作用,随着如下的讨论这点将变得更为清楚。
此刻,为便于理解对本发明的评价,复述美国专利申请Ser.No.07/569,935的说明是有益的和适当的,因为本发明就是由它导出的。接下来参见图3,该方框图示出的是与本发明有关的美国专利申请Ser.No.07/569,935所揭示和要求保护的该发明一个实施例处理系统20。处理系统20通常包括时钟源22、微处理器24、地址译码逻辑26、第一存储器28、第二存储器30、和总线32。在图3所示实施例中,时钟源22、地址译码逻辑26、第一存储器28、和第二存储器30都在微处理器的外部。且时钟源22、微处理器24、地址译码逻辑26、第一存储器28和第二存储器30都可以作成集成电路,每个电路都放在分开的集成电路器件内。
示出图3中的微处理器24包括分频器电路34、中央处理单元36、和使能时间控制38。该分频器电路34的输入40与时钟源22的输出42相连,以便接收时钟源22的时钟输出。分频器34还有一个与中央处理单元36的时钟输入46和地址译码逻辑26的时钟输入48相连的输出端44。时钟源22提供一包含较高重复频率的脉冲序列的时钟输出,它由分频器电路34分频以便在其输出端44给处理系统提供定时和同步时钟信号。如有关美国专利申请Ser.No.07/569,935中说明的,在其输出端44由分频器34提供的时钟信号的输出频率决定着微处理器24对外部存储器存取的速率。
使能时间控制38包括一连接在时钟源22的输出42和分频器电路34的输入40之间的输入端50。按有关专利申请Ser.No.07/569,935的说明,该使能时间控制38在其输出端52提供外部存储器使能时间信号,使外部存储器在该时间内处于使能状态,以便在微处理器24每次存取外部存储器期间利用总线。正如以后将会看到的那样,由使能时间控制38所建立的使能时间是独立于分频器34所确定的外部存储器存取速率的。该使能时间控制38还包括与中央处理单元36连接的输入端51。该输入允许中央处理单元36得以控制由使能时间控制所建立的使能时间在何时开始,但与时钟源输出同步。
使能时间控制38的输出52包括以散列符号标注的若干线,这些线与地址译码逻辑26的总线使能控制输入54、第一外部存储器28的总线使能输入56、和第二外部存储器30的总线使能输入58相连。熟悉本技术领域的技术人员将会理解,使能时间控制38的输出52根据不同的处理系统设计,在不脱离有关美国专利申请Ser.No.07/569,935发明的前提下,可以如图3所示与地址译码逻辑和外部存储器相连,也可以直接且唯一地与外部存储器28和30相连,或可以只经地址译码逻辑与外部存储器28和30相连。
中央处理单元36包括第一输出端60,将第一组外部存储器地址经第一组线62送到地址译码逻辑26。中央处理单元36还包括第二输出端64,将第二组外部存储器地址经第二组线66送到外部存储器28和30。当微处理器24存取外部存储器时,第一组地址由地址译码逻辑译码,用于选择所要存取的外部存储器。为此,地址译码逻辑包括一个经过多根输出线70与第一和第二存储器28和30相连的输出端68,用来向外部存储器28和30传送外部存储器或芯片的选择信号。
由中央处理单元36提供的第二组地址是用来选择所要存取的外部存储器中所要的存储单元。每个存储器28和30最好包括多个存储单元,而每个存储单元各具有对存储器来说是唯一的地址。外部存储器的存储单元可以有重复的地址。因而,由地址译码逻辑26提供的芯片选择信号经线70先选择所要存取的存储器,而经线66传送的第二组存储器地址再在选定要存取的外部存储器内选择所要存取的具体存储单元。
图3还显示出,中央处理单元36与总线32相连,外部存储器28和30也与总线32相连。中央处理单元36和外部存储器28和30与总线32相连,使得微处理器24可以与外部存储器通信,以允许中央处理单元在外部存储器存取期间从外部存储器读出数据和/或指令,或将数据写入外部存储器。
继续参见图3,在运行中,当微处理器24的中央处理单元36执行指令时,中央处理单元必须访问外部存储器28和30,从外部存储器读出数据或指令,或向外部存储器写入数据。时钟源22在其输出端42提供一种具有较高重复频率的脉冲序列作为时钟输出,由此可导出外部存储器存取速率。外部存储器的存取速率是从分频器34的输出端44得到的。在图3所示的特定系统中,时钟源频率决定了微处理器对外部存储器的最大存取速率。例如,在微处理器高活动量期间,分频器34用因子1来除由时钟源22提供的时钟输出的时钟速率。在微处理器低活动量期间,可降低存取速率以节约电力,分频器可用例如因子32来除时钟源22提供的时钟输出的时钟速率。
这样,分频器34的输出端44提供的时钟信号就决定着微处理器的外部存储器存取速率,同时用于处理系统20内的其他定时和同步用途。由使能时间控制38建立起来的使能时间,使外部存储器在每次存取期间均处于使能状态,同时响应中央处理单元36,使存储器使能时间在适当时间开始。
现在参见图4,示出的是包括根据本发明改进的外部存储器存取控制系统在内的集成电路的方框图。图4所示的集成电路包括很多的子元件;这些子元件的内部连接和内部操作都已详细地在有关的申请中说明并合并于此。就本发明而言,具有重要意义的元件是微控制器72和时钟发生器74。
微控制器72通常是如上所述的8051类型的微控制器。在经过测试具有极好结果的本发明实际构成的实施例中,微控制器72实际上是能够提供AMD 80C51系列产品中80C32T2器件功能的8位微控制器。有关该具体产品的细节对于本领域的技术人员是众所周知的,也是容易得到的。
时钟发生器74在图4所示的集成电路中,包括一晶体振荡器、一电力模式控制、一模块使能控制、和一个时钟分频器。在实际构成的本发明实施例中,该微控制器时钟具有输入是18.432MHz的可编程分频器。可编程速率可除以2、4、8、16、32、64、128和256。有关该时钟的其他细节,与本发明并不特别相关的细节在各种有关申请中提及。
根据本发明的说明,外部存储器使能时间控制信号的工作周期可以根据选定的时钟速度而改变,藉此提供对单位时间内外部存储器存取次数独立的外部存储器使能时间。从而可降低处理器的功率消耗,这是积极的进展。特别对于8051或类似微控制器。根据本发明的说明,PSEN*信号可以根据80C321微控制器72的频率作成例如2或3个振荡器。并且,这一工作周期还可根据微控制器已编程的频率自动地调整。
图4所示的集成电路典型地适合于本发明实施例在此的应用,这是因为时钟发生器74的存在和运行,使它具有容易编程的时钟速度。根据可以方便地监视的时钟发生器的编程时钟速度,可以自动选择适当的PSEN*工作周期,以达到所述的节省功率消耗的效果。熟悉本领域的技术人员应该理解,8051本来并不具有可编程时钟速度,但也该理解为了本发明目的对于这种微控制器增加这一技术特征是极为方便和有效的。图4只不过示出了如何可以做到的一个实例。
本发明因而提供一种用在处理系统中的新的、改进的外部存储器存取控制,它不仅在微处理器低活动量期间使得外部存储器存取速率下降以降低该处理系统的功率消耗,而且在外部存储器存取速率下降的那些时间里还能缩短每次存储器存取时间外部存储器的使能时间。这对于降低处理系统的功率消耗作出了进一步的贡献,当处理系统由消耗性电源例如电池供电时其意义极为重大。根据这里所述的较佳实施例,最好能够依据选定的可编程时钟速度改变PSEN*信号的工作周期。
显然,按照上述说明可以有多种改动和变形。因而,在所附的权利要求书范围内,本发明也可以以不同于这里具体说明的方式来实现。