可编程存储器存取接口类型的集成电路微处理器及方法

文档序号:6409288阅读:220来源:国知局
专利名称:可编程存储器存取接口类型的集成电路微处理器及方法
技术领域
本发明一般涉及数据处理器,更具体地涉及带有集成接口逻辑的数据处理器。
在很多情况下,集成电路微处理器必须与其它集成电路装置相连以完成一定功能。这类外部装置的例子有存储器、串联接口适配器、模数转换器和其它很多装置。在大部分例子中,每个这类外部设备需要外部控制信号以便在微处理器访问该设备时适当地将它激活。例如,一个静态随机存取存储器(SRAM)集成电路需要允许芯片操作、允许输出、和允许写控制信号以控制读写存取。这些信号的时序要求与市场上现成装置有所不同。例如,某些SRAM相对于允许输出信号异步地提供输出数据,而其它SRAM都与时钟信号同步地采样允许输出信号并提供输出数据。
一般情况下,一个设计带有微处理器和其它集成电路系统的设计者使用“胶合逻辑”,以便从由微处理器本身所产生的地址和总线控制信号中产生所需芯片选择信号。这个外加逻辑显著地增加了正在设计的系统的费用并可能使性能变坏,因而是极不受欢迎的。
可从California的Santa Clara的Intel Corporation得到的80186(亦称为iAPX186)是一个具有用于产生芯片选择信号的内部逻辑的集成电路微处理器。该芯片选择逻辑在完成下列功能时能力有限为其7个可能活动的芯片选择的地址范围编程及为其每个活动的芯片选择的总线周期可编程地插入等待状态。此外,某些芯片选择可编程为只在存储器内或微处理器的I/O地址空间内是活动的。
具有板上芯片选择逻辑的集成电路微处理器的另一个例子是1992年9月29日授权的在美国专利5,151,986中由John A.Langan和James M.Sibigtroth所公开的。所公开的芯片选择逻辑包括一个控制寄存器,依靠它可为数个芯片选择输出量中的每一个将时序、极性和等待状态数量单独地进行编程。
将芯片选择逻辑合并入微处理器集成电路所带来的主要问题牵涉到向用户提供足够的灵活性。胶合逻辑的使用十分灵活,因为系统设计者有很大自由在微处理器内存映射区中安排每个外部设备及安排时序和芯片选择信号本身的其它特性。这种灵活性很有用,因为可能设计的系统和特定外部设备的芯片选择要求互相间的差别是很大的。要在集成电路选择单元内提供足够灵活性而又将该单元尺寸约束在合理限度内是很困难的。
一种灵活性是能够支持具有脉冲串模式能力的CPU。脉冲串模式是一种模式,其中CPU在连续的时钟周期内访问一连串内存地址。例如,作为传送指令的一部分,CPU可在连续时钟周期内读字,从而自内存读取几个数据字。市场上现成的高过SRAM通过称为页模式、半字节模式、静列或类似模式的特征支持脉冲串模式。然而这些SRAM需要短存取时间的芯片,以便在一个时钟周期内提供数据,因此通常是昂贵的。
相应地提供一种形式的具有可编程接口类型的数据处理器,包括一个中央处理单元(CPU),一个可选寄存器,一个译码器,和一个存取控制器。CPU执行指令和存取内存。可选寄存器连至CPU并和一个内存区相关连。该可选寄存器存放一个编码值。译码器连至可选寄存器,并将编码值进行译码,以便对存取该内存区的CPU作出响应,提供译码信号。该译码信号采取众多状态之一,包括合法状态和备用状态。存取控制器连至CPU和译码器或其中之一,如译码信号处于合法状态,则存取控制器将具有由对应于该译码信号的可编程接口类型所定义的时序特性的众多外部控制信号加以激活,或如该译码信号处于备用状态,则存取控制器保持众多外部控制信号不活动。因此该数据处理器防止软件误差造成未定义的内存存取。
下面结合附图所作的详细描述将使这些和其它特征和优点更为明显。


图1以框图形式阐述根据本发明的数据处理系统。
图2-10阐述图1芯片选择电路的不同方面,以便于了解本发明。
图2以框图形式阐述图1数据处理系统的内存映象一部分。
图3以框图形式阐述图1芯片选择电路的多级保护电路。
图4以框图形式阐述图1芯片选择电路的可编程存取类型电路。
图5描述图1芯片选择电路所完成的第一内存存取类型的时序图。
图6描述图1芯片选择电路所完成的第二内存存取类型的时序图。
图7描述图1芯片选择电路所完成的第三内存存取类型的时序图。
图8以框图形式阐述图1芯片选择电路的一个模块化芯片选择控制电路。
图9以部分框图和部分逻辑图形式阐述图1芯片选择电路的一个管脚配备逻辑电路。
图10以框图形式阐述图8模块化芯片选择控制电路的时序控制级。
图11以框图形式阐述图1芯片选择电路特定实施例的功能框图。
图12a和12b,以块形式阐述图1芯片选择电路的寄存器地址映象。
图13以框图形式阐述图11芯片选择发生单元。
图14-19阐述图13控制单元所提供的不同接口类型的时序图。
图1以框图形式阐述根据本发明的一个数据处理系统20。数据处理系统20一般包括一个外部总线21、一个电可编程只读存储器(EPROM)22、一个静态随机存取存储器(SRAM)23、一个输入输出(I/O)芯片24、一个I/O芯片25、和一个数据处理器30。数据处理器30是一个用作数据处理系统20的中央处理单元(CPU)的单块集成电路,并一般包括一块CPU芯片31、一个芯片选择电路32、一个外部总线接口33和内部总线34。
CPU芯片31可用任何已知CPU结构实施如复杂指令集计算机(CISC)、精简指令集计算机(RISC)、数字信号处理器(DSP)或任何其它已知结构。此外,数据处理器30可看作为一个高度集成的微处理器或微控制器(嵌入控制器、微计算机、等等)。在微控制器的例中,数据处理器30包括数据处理系统的其它常规元件,如存储器和外设,它们位于芯片上并连至内部总线34。然而在数据处理系统20中,这类装置也可装在芯片之外,而数据处理器30则使用外部总线接口33通过外部总线21连至这些装置。
外部总线接口33通过内部总线34连至CPU芯片31。并向外部总线21提供信号外部总线接口33用于将内部总线34适配至单个外部总线21。例如,如CPU芯片31实施Harvard结构,使用单独的指令和数据通路,则外部总线接口33将按来自这些单独的指令和数据通路的存取按顺序安排至外部总线21上。
为减少集成电路数量,数据处理器30包括芯片选择电路32,用于产生直接送至EPROM22、SRAM23和I/O芯片24和25的时序和控制信号。例如,在所描述的实施例中,芯片选择电路32向EPROM22提供两个低活动芯片选择信号,即被称为允许芯片CE和允许输出OE,用于从外部总线21提取指令。为存取读写装置,芯片选择电路32也向SRAM 23和I/O芯片24和25提供允许写(WE)信号,例如允许写信号。芯片选择电路32具有一个通向外部总线接口33的双向连接,用于接收与对外部总线21的存取相关连的地址、属性和控制信号。在芯片上除集成板级逻辑外,芯片选择电路32还提供一个改善的外部接口,其特点一般在图2-9中描述。
图2以框图形式阐述图1数据处理系统20的内存映象的一部分40。部分40通常以降序形式表示一连串地址,将大地址表示于小地址之上。部分40包括一个主块41,由“主块高地址”和“主块低地址”定界。图1芯片选择电路32具备能力,可编程一个子块42,使之或与主块41重叠,或位于主块41边界之内。此重叠控制是有用的,因当内存密度增加后,具有多个与单个内存集成电路相关连的区域是有用的,其中每个区域具有不同可编程属性。为此目的,子块42可如图2所示完全位于主块41之内而由“子块高地址”和“子块低地址”定界。
芯片选择电路32如图3所描述,实施此重叠内存映象,图3以框图形式阐述图1芯片选择电路32的多级保护电路50。多级保护电路50一般包括用于任意数量块的译码器,它们中某些块可能是重叠的。例如,如图3所阐述,多级保护电路50包括一个主块译码器51和一个子块译码器54,用于分别实施图2的主块41和子块42。注意此处所用词“块”和“区”是同义的,而“子块”代表位于一块更大的块或区的边界内的块或区。
主块译码器51包括一个对应于主块低地址的基址寄存器52和一个可选寄存器53。可选寄存器53包括一个块长度域,当将它加到存放于基址寄存器52内的基址上时,即可确定主块高地址。此外,可选寄存器53存放着用于保护与主块41相关连的区域的属性。类似地,子块译码器54包括一个决定子块低地址的基址寄存器55和一个可选寄存器56,后者包括一个决定子块高地址的块长度域。此外,可选寄存器56包括用于与子块42相关连的可编程属性的域。
主块译码器51和子块译码器54两者都在图1的CPU芯片31的总线周期内接收一个标号为“地址”的输入地址,以及此外还接收标号为“保护属性”的代表当前周期保护属性的控制信号。这类保护属性的例子是写信号标志。例如,如主块41或子块42被写保护,则写信号将标明该未决周期为写周期,因而本周期与所编程的保护不匹配。主块译码器51和子块译码器54的每一个都将地址信号与由相应可选寄存器中基址寄存器和区长度域所定义的区域进行比较。如该地址位于该区域内,则相应的块译码器激活一个标号为“地址匹配”的地址匹配信号。此外,如输入的保护属性与相应的可选寄存器内的编程值相匹配,则该块译码器激活一个标号为“属性匹配”的相应的属性匹配信号。
接着优先级强制电路58从每个块接收地址匹配和属性匹配信号,并根据优先级机理决定是否激活一个外部控制信号,如标号为“CE”的信号。如只有主块译码器51和子块译码器54中的一个激活其地址匹配信号,则优先级强制电路58只当相应的属性匹配信号也已激活时才将信号CE激活。现同时参照图2和3,假定地址处于主块低地址和子块低地址之间。这种情况下,主块译码器51将检测到地址匹配情况并激活地址匹配信号。此外,假定保护属性与可选寄存器53中所编程的保护属性相匹配。这种情况下,主块译码器51也将激活属性匹配信号。然而,由于地址不处于子块42之内,所以子块译码器54将不激活其地址匹配信号。因此优先级强制电路58根据主块41内的地址和属性匹配情况激活信号CE。
现看地址落在子块42内的情况。这种情况下,主块译码器51和子块译码器54两者都激活它们相应的地址匹配信号。现也假定保护属性与可选寄存器53中所定义诸项相匹配,因而主块解码器51激活其属性匹配信号。然而与此同时,由于保护属性与可选寄存器56中所编程的属性不匹配,所以子块译码器54不激活其属性匹配信号。这种情况下,优先级强制电路58将信号CE保持为不活动,承认子块译码器54的优先级高于主块译码器51。因此子块42能以更高的保护优先级嵌套于主块41内。这种块之间的嵌套和优先级分配可扩大应用至任意数的嵌套。
图4以框图形式阐述图1芯片选择电路32的可编程存取类型电路60。可编程存取类型电路60一般包括一个可选寄存器61,后者具有一个接口类型域62、一个接口类型译码器63和一个存取控制器64。可选寄存器61是一个如上面图3所阐述的可编程区相关连的寄存器,它包括一个接口类型(ITYPE)域62。ITYPE域包括一个编码接口类型值,提供给接口类型译码器63输入端。接口类型译码器63接着将ITYPE域62解码并将解码信号提供给存取控制器64。接着存取控制器64根据输入的标号为“时钟”的时钟信号为CE、OE和WE产生时序信息。
在已知的芯片选择电路中,可选寄存器为预译码域中个别信号定义时序和接口特性。因此,当软件误差的存在使这些位中一位或更多位受到破坏时,将会产生非法时序组合,结果产生硬件错误或软件崩溃。然而可编程存取类型电路60能阻止这类出错组合,因此数据处理器30对软件错误有更大抗扰性及允许更快更不易出错的软件开发。可编程存取类型电路60利用编码的ITYPE域能防止这些软件错误造成未经定义的内存存取。在开发软件时,软件错误会导致ITYPE域62不正确地编码,致使ITYPE域62的一位或更多位的数值不对。接口类型译码器63将来自ITYPE域62的编码信号加以译码,从而提供一个可采取合法状态或备用状态的译码信号。如ITYPE域62编码得合法状态,则接口类型译码器63向存取控制器64提供输出量,以便根据所选合法接口类型提供时序信息。然而,如ITYPE域62编码得备用状态,则接口类型译码器63将不会激活其送给存取控制器64的输出量。因此存取控制器64将不完成外部总线周期。
图5描述由图1芯片选择电路32完成的第一内存存取类型的时序图。图5显示有助于理解这个第一内存存取类型的几个信号,包括时钟、地址、WE、CE、OE和数据。这种内存存取类型称为“带有早期同步允许输出信号的同步接口”类型。图5所示第一条线是时钟信号,图5所示其它所有信号都与它同步。三个标号为“t1”、“t2”和“t3”并对应于时钟信号的连续由低到高转变的时间点有助于理解本内存存取类型。
注意图5假定在时间t1之前所有以前的存取操作都已结束。还注意图5所描述的信号波形假定芯片选择电路32向外部总线接口33提供信号,以确认存取周期的地址段和数据段。然而如使用外部确认信号,则存取的地址段和数据段的持续时间决定于何时接收到这些确认信号。例如,一个标为“AACK”的称为地址确认的信号对存取周期的地址段加以确认。芯片选择电路32保持信号CE活动,直至它检测到在时钟由低到高转变之前对信号AACK的激活。一个标为“TA”的称为传送确认的信号对存取周期的数据段的结束加以确认。芯片选择电路32保持信号OE(在读周期内)或WE(在写周期内)活动,直至它检测到在时钟由低到高转变时对信号TA的激活时为止。
一个标号为“A1”对应于第一内存存取的地址在时钟信号由低到高转变的时间点t1处建立起来。为标明该存取是读存取,芯片选择电路32使信号WE不活动。此外,芯片选择电路32将信号CE激活,以使被存取存储装置将地址A1锁存并使存取周期的起始时间的t1早一个建立时间。接着,在比时钟信号由低到高转变的t2时间点更早一个建立时间的时刻,芯片选择电路32将信号OE激活。信号OE的激活使存储装置开始输出其数据。由于是随着时钟信号的由低到高转变而建立起来的,因此信号OE是同步的而对此类型存取周期作出响应的存储装置能于时钟信号由低到高转变时检测到信号OE。在存储装置检测到信号OE的激活后,它即开始提供其输出数据以完成读存取周期。如图5所示,由芯片选择电路32中所编程的对此存取类型作出响应的存储装置具有一个等待状态。因此芯片选择电路32在比t2早一个建立时间的时刻将信号OE激活,使存储装置在比时钟信号由低到高转变的t3时间点更早一个建立时间的时刻提供标号为“D1”的被存取数据单元。
这个存取周期类型的优点在于具有相对地慢的存储器芯片的存储装置可以顺序地和有效地进行存取操作。由于信号OE在t2之前建立起来而在t2时刻由所存取存储装置所检测到,芯片选择电路32可以在第一个存取的数据段完成之前就较早地完成第二个存取的地址段。芯片选择电路32在至少比t3早一个建立时间的时刻提供一个标号为“A2”的第二个重叠地址,再次保持信号WE不活动和再次在比t3早一个建立时间的时刻激活信号CE。
图6阐述另一种接口类型及图1芯片选择电路32所完成第二内存存取类型的时序图。如图5中一样,图6显示了与总线周期相关的信号,包括时钟、地址、CE、OE和数据。此外,图6描述了一个标号为“BDIP”的信号,后者标明目前进行的是一个脉冲串数据周期。图6阐述一种称为“带有同步OE的同步脉冲串读取”类型的内存存取类型。图6显示附加的标号为“t4”、“t5”、“t6”、“t7”、“t8”、“t9”和“t10”的时钟信号的由低到高转变。
这种存取类型相似于图5所阐述的存取,但和图5所阐述的存取不同的是,被存取的存储装置在时间点t6、t7、t8和t9处提供4个顺序的数据单元,从而完成一个脉冲串存取。这4个数据单元分别标以“D10”、“D11”、“D12”和“D13”。如芯片选择电路32中所编程那样,对这种存取类型作出响应的存储装置具有一个等待状态。因此在时间t5检测到信号OE的激活之后,该存储装置在比时钟信号由低到高转变的t6时间点更早一个建立时间的时刻提供所存取的数据单元D10。作为脉冲串一部分的随后的数据单元是在时钟信号随后的由低到高转变时对信号BDIP的激活作出响应时提供的。这种存取周期类型的优点在于具有相对地慢的存储器芯片的存储装置可以顺序地和有效地进行存取。
还有一个接口类型阐述于图7中,图7阐述图1芯片选择电路32所完成的第三内存存取类型的时序图。如图5中一样,图7显示了与总线周期相关的信号,包括时钟、地址、WE、CE、OE和数据。图7阐述的内存存取类型称为“带有同步OE和早期重叠的同步接口”类型。图7显示附加的标号为“t11”、“t12”、“t13”和“t14”的时钟信号的由低到高转变。
在t11附近,标号为A1的第一总线周期的地址在时钟信号于t11时刻由低到高转变时建立起来。此外,信号WE不活动而CE活动(标以“CE1”),标明在时间地址A1处的读周期是合法的。随后,由于芯片选择电路32在比t12早一个建立时间的时刻激活信号OE(标以“OE1”),因此出现对应于此第一存取的数据段。随后,如图5以前所标明的,被存取的存储装置在比t13早一个建立时间的时刻提供数据单元D1。
然而,根据本接口类型,芯片选择电路32在第一存取数据段的至少一部分时间内完成地址段,因而开始第二存取。芯片选择电路32在比时钟信号于时间点t12由低到高转变时更早一个建立时间的时刻提供一个标号为A2的第二地址,从而完成此接口。与前面一样,芯片选择电路32保持信号WE不活动,以标明一个读周期,并激活信号CE(标以“CE2”)以向被存取存储装置标明地址A2是合法的。在被存取存储装置在比t13早一个建立时间的时刻提供数据单元D1从而完成第一存取的数据段之后,芯片选择电路32可在比t13早一个建立时间的时刻激活信号OE(标以“OE2”),从而开始第二存取的数据段。随后,被存取存储装置在比t14早一个建立时间的时刻提供标号为“D2”的数据单元。由于在第一存取的数据段结束之前就开始第二存取的地址段,芯片选择电路32允许重叠存取,这改善了总线的利用和允许在给定时间内进行更多的内存存取。
芯片选择电路32也可以模块化,以便如图8所阐述那样,为不同应用目的重新配备,图8以框图形式阐述图1芯片选择电路32的模块化芯片选择控制电路80。模块化芯片选择控制电路80一般包括两条用于互连信号的总线标号为“译码总线”81的第一总线和标号为“时序总线”82的第二总线。模块化芯片选择控制电路80还包括一个地址译码级90、一个时序控制级100和一个管脚配备级110。模块化芯片选择控制电路80包括一个第一任意数的地址译码器和地址译码级90,一个时序控制级100中的第二任意数的控制单元,和第三任意数的管脚配备逻辑电路和管脚配备级110,因而是模块化和可重新配备的。
如图8所阐述,地址译码级包括代表性的地址译码器91、94和97。地址译码器91包括一个基址寄存器92和一个可选寄存器93。基址寄存器92为与地址译码器91相关连的可编程区域定义一个基址。可选寄存器93包括一个与地址译码器91及其它和区域特性有关的可编程或相关连的区域的长度。地址译码器91通过内部总线34接收来自图1CPU芯片31的地址,并进行比较以检查该地址是否位于基址寄存器在可选寄存器93的长度域中所定义的区域内。对地址匹配作出响应时,地址译码器91向译码总线81提供控制信号。类似地,地址译码器94和97也检测地址是否位于它们对应的可编程区域内并相应地向译码总线81提供控制信号。地址译码级90中的地址译码器的数量是任意的,以便满足不同系统需求,并可在灵活性和芯片尺寸间取得折衷。例如,在某些应用场合中需要增加可用可编程区域的数量,以容纳更灵活的软件或系统结构。而在其它应用场合中则可能减少地址译码器的数量以使集成电路费用减至最小。
时序控制级100包括第二任意数的控制单元。在时序控制级100中阐述两个控制单元101和102。时序控制级100用作一个存取状态机以便将芯片选择信号提供给外部总线21,同时每个控制单元101和102都有一个输入端连至译码总线81,用于接收译码信号,以便标明一个正在进行中的总线周期是否与一个或更多个可编程区域相匹配。作为响应,时序控制级100的控制单元中的所选的一个单元向时序总线82提供顺序时序信息,以反映用于所给定可编程接口类型的恰当时序。时序控制级100中所选控制单元的数量决定了正在进行中的未决重叠内存存取的数量。这个未决内存存取的数量亦称为流水线深度。
例如,地址译码级90中的地址译码器91检测到一个和它对应的可编程区域的存取并作为响应向译码总线81提供控制信号。在时序控制级100中,一个例如控制单元101那样的控制单元与此总线周期互相关连,并在此存取的未决期间为此存取向时序总线82提供时序信号。在第一次存取期间可能发生第二次存取,地址译码级90中的一个地址译码器可能检测到一个对其相应可编程区域的存取、具有与在其可选寄存器所编程的属性相匹配的属性、并向译码总线81提供控制信号。如该接口类型所决定的,一个例如控制单元102那样的第二控制单元接着可能开始向时序总线82提供时序信号以便为此存取将一个或更多个芯片选择控制信号加以重叠。
管脚配备级110包括第三任意数的管脚配备逻辑电路。每个管脚配备逻辑电路对应于并专门用于一个集成电路管脚。然而集成电路管脚可由此芯片选择信号与其它信号所共享,其功能可通过编程加以设置。
此第三任意数在不同应用例中是不同的,以便在灵活性和系统费用间取得折衷。例如,在费用并不是最重要因素的应用场合中,可能采用更多数量的管脚配备逻辑电路,以提供更大灵活性和向更多数量的存储装置提供芯片选择信号的能力。在其它更看重费用的应用场合中,可能采用较少数量的管脚配备逻辑电路。
在管脚配备级110中,显示了代表性的管脚配备逻辑电路111、112和113,它们分别提供标号为“PINO”、“PIN1”和“PINN”的输出信号。每个管脚配备逻辑电路具有一个连至译码总线81用于接收控制信号的输入端和一个连至时序总线82用于接收时序信息的第二输入端。因为每个管脚配备逻辑电路接收所有可能的时序信息,所以每个管脚配备逻辑电路可以配备为一组芯片选择功能中的任何一个。例如,管脚配备逻辑电路111可以配备为CE、WE或OE信号中的任何一个,这由管脚配备逻辑电路111的编程所决定。因此,由于在地址译码级90中包括第一任意数的地址译码器,在时序控制级100中包括第二任意数的控制单元,和在管脚配备级110中包括第三任意数的管脚配备逻辑电路,模块化的芯片选择控制电路80就能定义任意数的内存区域、任意数的存取流水线深度和任意数的芯片选择信号,从而最大程度地提供灵活性。不同实施例中的这些任意数可以是不同的,以取得最好的可用的折衷。
图9以部分框图和部分逻辑图的形式阐述图1芯片选择电路32的管脚配备逻辑电路120。管脚配备逻辑电路120一般包括一个管脚功能寄存器130,一个服从逻辑部分140,和一个管脚功能输出部分150。管脚功能寄存器130存放用于定义如CE、OE和WE那样的供选择的管脚功能的位,并提供代表所选功能的译码输出信号。服从逻辑部分140包括任意数的服从电路,例如阐述性的服从电路141和145。服从电路141一般包括一个服从逻辑电路142、一个或门143和一个D型触发器144。服从电路141与标以“C1”的第一周期相关连。服从电路141具有一个用于接收标号为“C1开始”的信号的第一输入端,一个用于接收标号为“C1区域选择”的信号的第二输入端,一个连至管脚功能寄存器130的第三输入端和一个输出端。或门143具有一个用于接收标号为“C1结束”的信号的第一输入端,一个用于接收标号为“复位”的信号的第二输入端和一个输出端。D型触发器144有一个标号为“D”连至服从逻辑电路142输出端的数据输入端,一个标号为“清零”连至或门143输出端的清零输入端,和一个标号为“Q”用于提供标号为“服从1”的输出信号的输出端。
类似地,服从电路145与标号为“CN”的第N个周期相关连,及一般包括一个服从逻辑电路146和或门147和D型触发器148。服从逻辑电路146具有一个用于接收标号为“CN开始”的信号的第一输入端,一个用于接收标号为“CN区域选择”的信号的第二输入端,一个连至管脚功能寄存器130的输出端的第三输入端和一个输出端。或门147具有一个用于接收标号为“CN结束”的信号的第一输入端,一个用于接收复位信号的第二输入端和一个输出端。D型触发器148具有一个连至服从逻辑电路146输出端的D输入端,一个连至或门147输出端的清零输入端和一个用于提供标号为“服从N”的信号的Q输出端。
服从电路141和145确定与管脚配备逻辑电路120相关连的管脚应服从哪个周期。在第一周期内,图8的时序控制级100中的控制单元激活一个相应的周期开始信号。例如,假定控制单元101激活C1开始信号。此外假定地址译码级90中的一个地址译码器激活C1区域选择。如管脚功能寄存器130的输出量与C1区域选择相匹配,则服从逻辑电路142对C1开始信号的激活作出响应,将其输出量激活。此信号即作为D输入量送至D型触发器144,后者接着在下一个时钟信号(图9未示出)时刻于Q输出端处激活服从1信号。于是服从1信号保持活动直至所选控制单元激活用于将D型触发器144清零的C1结束信号,或直至由于复位信号激活而将管脚配备逻辑电路120复位。服从逻辑部分140中的每个服从电路都类似地对相应的周期开始和结束信号的激活和相应的区域选择信号的激活作出响应。
管脚功能输出部分150一般包括任意数的对应于每个可能的管脚功能的功能逻辑块。图9阐述一个标号为“功能1逻辑”的第一功能逻辑块151和一个标号为“功能M逻辑”的第二功能逻辑块152。每个功能逻辑块具有用于接收诸如服从1和服从N信号那样的每个服从信号的一些输入端,用于接收标号为“CiFj时序”的时序信号(它们代表每个周期和每个功能的时序信号)和相应的标号为CiFj选择的选择信号的一些输入端,以及连至管脚功能寄存器130的相应输出端的另一个输入端。在此例中,下标i等于1至N,而j为1至M,其中N和M为任意数。例如,功能1逻辑块151接收管脚功能寄存器130的输出量,这标明PINO具有功能F1。类似地,功能M逻辑块152从管脚功能寄存器130接收一个输入量,这标明PINO的功能为FM功能。如管脚功能寄存器130的输出量标明该管脚对于相应的功能作出响应,则每个功能逻辑电路对与一个活动周期相关连的时序信号作出响应。例如,如管脚功能寄存器130选择PINO使之具有功能F1,则功能1逻辑块151是活动的。在第一周期内服从1信号是活动的,功能1逻辑块151接着提供一个它的与恰当的时序信号相对应的输出量。这个恰当的时序信号是CiFj时序。此例中,所有其它功能逻辑块都保持它们的输出量为不活动,处于逻辑低状态,以使提供PINO信号的或门153的输出量只对使用该恰当的时序信号的活动的功能逻辑块作出响应。因此,提供给PINO的芯片选择信号只服从活动的时序周期,并允许任意数的流水线深度。PINO不服从其它的与虽不活动但在流水线中却是未决的周期相关连的时序信号,直至活动周期结束。
图10以框图形式阐述图8的模块化芯片选择控制电路80的时序控制级100的一部分160。部分160一般包括一个第一控制单元170、一个第二控制单元180和一个早期流水线控制电路186。控制单元170一般包括一个允许地址锁存器171、一个可选锁存器172和一个时序状态机173。允许地址锁存器171具有一个标号为“允许地址总线”的输入端连至内部总线34的允许地址部分。CPU芯片31提供一个连至允许地址总线的允许地址信号,以标明一个存取的地址段正在进行中。作为响应,部分160必须将此允许地址信号译为恰当的芯片选择信号以便直接驱动存储装置。允许地址锁存器171具有一个连至时序状态机173输入端的和连至早期流水线控制电路186输入端的输出端。可选锁存器172具有一个标号为“可选总线”的连至内部总线34的可选总线部分的输入端及一个连至时序状态机173输入端和连至早期流水线控制电路186输入端的输出端。时序状态机173具有连至允许地址锁存器171输出端的、连至可选锁存器172输出端的和连至早期流水线控制电路186第一输出端的三个输入端,及提供三个标号为“CE1时序”、“WE1时序”和“OE1时序”的时序信号的输出端。
类似地,控制单元180包括一个允许地址锁存器181、一个可选锁存器182和一个时序状态机183。允许地址锁存器181具有一个连至允许地址总线的输入端,用于接收允许地址信号。允许地址锁存器181具有一个连至时序状态和183输入端和早期流水线控制电路186输入端的输出端。可选锁存器182具有一个连至内部总线34的可选总线部分的输入端和一个连至时序状态机183输入端和连至早期流水线控制电路186输入端的输出端。时序状态机183具有连至允许地址锁存器181输出端、连至可选锁存器182输出端和连至早期流水线控制电路186的第二输出端的三个输入端,及提供三个标号为“CE2时序”、“WE2时序”和“OE2时序”的时序信号的输出端。
早期流水线电路186具有一个连至允许地址总线用于接收允许地址信号的第一输入端,一个连至可选总线的第二输入端,及连至允许地址锁存器171和181输出端的输入端及连至可选锁存器172和182的输入端。早期流水线控制电路186向时序状态机173和183提供输出量,以确定当两个周期重叠时哪一个周期是活动的,因而避免不恰当的芯片选择信号时序。
时序控制级100通过协调控制单元170和180的时序来实现存取的有效流水线操作。有两个流水线检测和控制机构。第一,早期流水线控制电路186向两个时序状态机173和183提供附加控制信号以防止非法定时顺序,从而将具有例如图5或图7中所阐述的类型的存取那样的重叠存取加以协调。具体说,早期流水线控制电路186检测确定重叠存取是对同一区域还是不同区域,重叠存取周期是读周期还是写周期,并作为响应,提供恰当控制信号。第二,控制单元170和180检查两个所存取区域的特性以提供恰当的芯片选择信号时序,一个特性是由来自可选总线的ITYPE域所决定的接口类型。另一特性是由来自可选总线的相关域所标明的该周期是由外部确认信号所结束,还是在预定数的等待状态后从内部来结束。
图2-10所阐述的电路参照图11-19所阐述具体实施例将能更好地理解。如这里所用的“激活(动词)”或“激活(动作名词)”是指一个采取其逻辑真状态的信号。一个“高活动”信号是在逻辑高电平上活动或真实的。一个“低活动”信号是在逻辑低电平上活动或真实的,而低活动信号用上划线来表示。信号“$”表明它后面的数字以16进制(以16为基数)表示。
注意有几个名词可能以不同方式引用。例如,名词“区”和“块”可交换使用。还有,除非特别注明,名词“内存”(存储器)包括易失性和非易失性内存两者,还包括内存映象的外设。还有,类似名词采用类似标号或不同图之间采用类似参考数值。
表1参照图1的单元定义了附加名词,有助于理解下面描述的具体实施例表1
图11以框图形式阐述图1芯片选择电路32的具体实施例的一个功能框图。芯片选择电路32一般具有3个信号接口。首先,芯片选择电路32接收一个标号为“复位”的对数据处理器30是全局量的复位信号,一套标号为“时钟”的既包括内部操作时钟信号又包括外部总线时钟信号时钟在内的时钟信号,及一套标号为“初值”的信号。在复位时(复位信号为活动),数据处理器30将外部数据总线管脚加以采样以便获得初值,于是芯片选择电路32使用该初值将它的某些寄存器设值。在复位时,其它寄存器采取省缺值,这在下面将进一步描述。
其次,芯片选择电路32有一接口连至外部总线接口33。CPU芯片31对相应的内存映象地址完成读和写周期,从而对芯片选择电路32内部的寄存器进行存取。在检测到这类存取后,外部总线接口33通过一个特殊用途总线控制对芯片选择电路32的存取,该特殊用途总线包括一个标号为“子总线地址”的地址总线输入端和一个标号为“子总线数据”的双向数据通路。其它用于存取芯片选择电路32的寄存器的控制信号通过一套标号为“握手”的信号传送至外部总线接口33或从后者传送过来。用于存取内存映象外设寄存器的控制信号的产生是众所周知的,所以不再描述。然而与外部总线传送有关的不同握手信号是在外部总线接口33和芯片选择电路32间传送的。这些传送握手信号在下面表2中加以描述。
表2
>这些信号中的有关部分将在下面更详细地加以描述。
芯片选择电路32还有一个用于接收由外部总线接口33向外部总线21提供的32位地址,标号为“地址”的输入端,和另一个用于接收代表正在进行中的存取的属性的信号、标号为“属性”的输入端。表3列举了芯片选择电路32所用具体属性表3<
第三,芯片选择电路32包括一个连向外部设备的包括13个标号为“CSBOOT”和“CS(0)-CS(11)”的信号的接口。这些信号将结合下面图13作更详尽描述。
如图11中所阐述的,芯片选择电路32一般包括两部分一个寄存器存取电路190和一个芯片选择生成单元200。寄存器存取电路190包括一个寄存器存取控制器192和一个寄存器地址译码器194。寄存器存取控制器192是一个状态机,用于为对芯片选择电路32的寄存器的存取提供控制信号。寄存器地址译码器194检测芯片选择电路32的哪个寄存器正被存取。寄存器存取电路190连至芯片选择生成单元200,用于对进入芯片选择寄存器195进行存取。
芯片选择寄存器195是如图12a和12b所阐述的内存映像寄存器,这些图以框图形式阐述芯片选择寄存器195的地址映象。虽然这些寄存器在内存中的位置可任意定,但它们最好如此安排以便将来扩展。例如,芯片选择电路32支持6个区域加一个专用子区域,并一共具有13个芯片选择信号。对应于独特区域的每一个芯片选择信号既有基址寄存器又有可选寄存器;其它7个芯片选择信号中每一个只具有可选寄存器。内存映象中与这些6个可选寄存器相邻的位置空着备用,允许导出集成电路通过增加基址寄存器来支持附加功能。下面将结合图13详细描述芯片选择电路32中寄存器的功能。
图13以框图形式阐述图11的芯片选择生成单元200。芯片选择生成单元200一般包括两个用于互连信号的总线,即译码总线201和时序总线202。芯片选择生成单元200还包括一个地址译码级210、一个时序控制级230和一个管脚配备级240。芯片选择生成单元200只是图8模块化芯片选择控制电路80的一个可能的实施例,它利用它的模块化特性和可重新配备特性实施一个适用于高性能微控制器的芯片选择电路。芯片选择生成单元200定义6个使用6个地址译码器的区域加上一个专用子区,并具有7个附加可选寄存器,用以定义用于对6个区域进行存取的芯片选择信号。芯片选择生成单元200还包括两个用以实施一个双深度流水线的控制单元,及具有13个可编程芯片选择管脚。6个区域中的一个是一个特定的引导区域,它在复位时活动,以允许对存放引导子程序的非易失性内存进行存取。接着一部分引导子程序可对其余区域编程。
芯片选择生成单元200将区域配对以提供二级和三级区域嵌套,从而实施多级保护机构。为实施该特征,芯片选择生成单元200将引导区域(也称为CSBOOT区域或区域0)定义为主区域,与区域1配对。与区域0配对后,区域1可用作位于区域0内具有较高优先级的子块。区域2和4也是主块,分别与区域3和5配对,后者能够用作位于区域2和4内具有较高优先级的子块。
此外,芯片选择生成单元200具有一个附加的译码器,用于定义一块与区域0配对的专用子块(“引导子块”)。该专用子块译码器允许多至三级的嵌套。用于实施三级嵌套的优先级方案如下区域1的优先级比引导子块高,而后备的优先级又比区域0高。
芯片选择生成单元200中每个区域具有一个相关连的内存存取接口类型(“ITYPE”),后者是在相应的可选寄存器中的编码域内所定义的。芯片选择生成单元200支持8个不同接口类型。如被存取区域的可选寄存器中的ITYPE域将这8个合法存取类型中的一个加以编码,则时序控制级230提供一套由存取类型所定义的相关连的时序信号。然而,ITYPE域也可编码为处于备用状态中。如ITYPE域为处于备用状态中,例如由软件错误所造成者,则相关连区域的译码逻辑块不允许存取发生。因此,芯片选择生成单元200阻止这些错误不让它们造成错误的内存存取。
一种接口类型允许对一个区域进行同步读取并提供一个早期同步OE信号。这种存取类型称为“具有允许早期同步输出的同步接口”。这种接口类型适用于需要至少一个等待状态的同步内存或内存映象外设。在使用这种存取类型的存取时,时序控制级230的一个控制单元在一个时钟周期内激活信号OE,及外部总线接口33在随后的时钟周期内将数据锁存。在对具有至少一个等待状态的存储装置进行存取时,该存取类型允许芯片选择生成单元200在第一周期的数据段完成之前完成第二周期的地址段。当对脉冲串式装置进行存取时,时序控制级230支持一种相似的称为“具有允许同步输出的同步脉冲串式读取”的存取类型。
另一种接口类型提供区域存取的早期重叠特征。这种存取类型称为“具有允许同步输出及早其重叠的同步接口”的类型。对这种接口类型,时序控制级230在它为第二个存取提供OE信号的时钟周期内完成随后的存取的地址段,从而提前一个时钟周期开始进行随后的存取。
时序控制级230还通过强制一套流水线规则来支持双深度的流水线深度。这些规则保证数据完整性和恰当的周期结尾。这些规则检查以下因素例如,该存取是读存取还是写存取,该存取是否为对由芯片选择生成单元200确定的区域的存取,该存取为对具有同步接口类型还是具有异步接口类型的区域的存取,及被存取装置是否为脉冲串式装置、能否挂起其数据和能否提供它自己的传送确认信号。
管脚配备级240支持时序控制级230中两个控制单元,允许实现双深度流水线。管脚配备级240中13个管脚配备逻辑电路中的每一个电路标出是第一还是第二周期“据有”相关连的管脚。如周期属性,例如像对在管脚功能寄存器中所编程的区域的存取的属性那样,得到满足,则每个管脚配备逻辑电路使用与其所选管脚功能相关连的时序,以便在第一周期内提供芯片选择信号。在第二周期内,如该周期属性也得到满足,则每个管脚配备逻辑电路进一步服从与所选管脚功能相关连的时序。
下面将顺序考虑每一级,从而将芯片选择生成单元200的这些和附加特征更全面地进行描述。
地址译码级210定义多至7个不同可编程区域。这些7个区域的第一个标为引导区域,或另一称呼,为区域0。有两个与引导区域相关连的寄存器211和212,及一个译码逻辑块224。标号为“CSBOOT基址寄存器”的寄存器211用作引导区域的基址寄存器。寄存器211使用32个可能使用的位中的20位。位0-19标志引导区域的基址,其中寄存器211的位0对应于地址的位0,寄存器211的位1对应于地址的位1,并以此类推。在此将位排序方案中,地址的位O代表最高有效位,而位31代表最低有效位。
在复位时,如一个称为中断前缀位(IP)的初值位等于零,则此域取省缺值为$00000,如(IP=1)则此域取值为$FC000,并且在复位后是软件上可编程的。注意,由省缺基址和省缺块长度决定的省缺CSBOOT区域必须包括CPU芯片31的复位向量地址(初始程序计数器的内存地址)。虽然该区域的基址可编程成为地址映象中的任何地址,但它不应与数据处理器30中其它块或模块重叠。通电时,引导装置的地址可能与一个内部模块的地址匹配,例如数据处理器30中用于存放指令的一个内部EPROM。如出现此种情况,则数据处理器30所包括的附加电路(未示出)使内部存取取代外部存取。该内部存取用于提供引导指令,而芯片选择发生单元200不完成外部存取。CSBOOT基址寄存器的位20-31留作备用。
标号为“CSBOOT可选寄存器”的寄存器212是用于引导区域的可选寄存器。它是一个32位寄存器,其各位的定义标于下表4中表4
如表4所标出的,表4-1至4-8将进一步阐述一些位域。在复位时BSIZE域对CSBOOT可选寄存器取省缺值为$F。然而在另一实施例中,只要CPU芯片31的复位向量仍位于省缺的CSBOOT区域内,BSIZE域可为其它值,例如1兆字节(1M)。表4-1阐述BSIZE域的编码值表4-1
位4即SBLOCK位标明该区域是否为位于一块较大主块内的子块。如下面表4-2所示,不同块在一起配对表4-2
<
除以上配对外,如前面所指出的,引导区域具有一块附加的未用子块。如寄存器212中设置了SBLOCK位,则CS0块为主块而CS1块为子块。复位时,该位采取省缺值0。
CSBOOT可选寄存器的SUPER位在复位时采取省缺值为1,因为在管态中复位后,CPU芯片31将开始执行存取指令。复位时DSPACE位省缺值为0。CSBOOT可选寄存器的WP位在复位时的省缺值为1,因为一般情况下引导指令是非易失性只读存储器中读取的。复位时C1位清零,因为从引导子程序来的指令一般可存入高速缓存。
复位时ACK-EN位设为1,而相应的初值位则提供初始TA-DLY域值。表4-3阐述TA-DLY域的编码值表4-3<
>初始PS域也是一个初值,其编码值阐述于下面表4-4中
表4-4
为CSBOOT区域复位时PCON域清零,其编码值示于下面表4-5中表4-5
注意此处PCON域用作管脚功能寄存器130。在其它实施例中,可能使用单独的管脚功能寄存器。
复位时字节域清零,其编码值示于下面图4-6表4-6
2、构词规则只可选用下面一种方法书写①依次写完每个字的声、韵、调代码和表示结构区别的字母。
②依次写完每个字的声韵代码和表示结构区别的字母。
③用表音文字速码关于词组的编码方法书写。
3、行文方法①字与字、词组与词组、字与词组之间必须留下一个字母大小的空格。
②每段起头的第一个字母必须用大写。
③对所有的词组也都可以按一个一个的单字来书写④对汉字中的数字符号不作改动。如一、二、三、四……和阿拉伯数字1、2、3、4……都依照原样书写。但大写的中文数字须用表音文字书写,如壹、写为yis⑤对汉语中的标点符号不作改动。
第二个区域标以CS1区域或称为区域1。有两个寄存器216和217与区域1相关连,并有一个译码逻辑块225。标号为“CS1基址寄存器”的寄存器216用作区域1的基址寄存器。寄存器216是一个32位寄存器。和寄存器211一样,位0-19标明区域1的基址,其中位0相应于地址的位0,位1相应于地址的位1,以此类推,而位20-31则备用。复位时,此域省缺值为$00000。虽然该区域的基址可以编程为地址映象中任何地址,但它不应与数据处理器30中其它块或模块重叠。标号为“CS1可选寄存器”的寄存器217是区域1所用可选寄存器。它是一个32位寄存器,其编码值与上面表4所定义的寄存器212的值相同。复位时,除PCON域外其它位省缺值都为0;如数据处理器30处于芯片选择模式中,则PCON域取省缺值为$0,否则它取值为$3。
地址译码级210包括相对应于其它5个区域的5个其它可选寄存器。图13阐述分别标号为“CS1可选寄存器”和“CS5可选寄存器”、分别与区域1和区域5相关连的代表性的可选寄存器217和219。这些可选寄存器中的每一个都具有与寄存器212相同的位域定义。然而在复位时全部位和位域都清零。
标号为“CS0可选寄存器”的寄存器215是一个相对应于管脚配备级240中的一个管脚的可选寄存器,并只包括上面所定义的PCON、字节和区域域。如此管脚处于芯片选择模式中,则复位时PCON域取省缺值2,否则它取值为3;字节域和区域取省缺值为0。包括标号为“CS6可选寄存器”和“CS11可选寄存器”的代表性寄存器220和221在内的未与任何具体区域关连的可选寄存器具有与寄存器215相同的位域定义。然而复位时,如相应的管脚处于芯片选择模式中时,则PCON域清零,否则该域设为3。与寄存器215相似,这些附加可选寄存器中的字节和区域域在复位时都清零。
与引导区域相关连的是一个译码逻辑块224。寄存器211、212、213和214中的每一个将它们的位作为输出量送至译码逻辑块224。此外,为使专用块1成为块0的配对子块(在专用引导子块之外),与块1相关连的译码逻辑块225向译码逻辑块224的输入端提供输出信号。这些输出信号是图3中所阐述的多级保护机构所需地址匹配和属性匹配信号。注意到主块含有优先级强制电路58的功能。译码逻辑块224通过总线接口33自CPU芯片31接收输入量地址和属性。译码逻辑块224首先检查地址是否位于引导区域内或专用引导子块内。译码逻辑块224的做法是确定地址是否位于相应寄存器的基址域的BSIZE之内。其次,译码逻辑块224将输入量属性与相应可选寄存器中所编程的属性相比较。
在所阐述的实施例中,地址是一个32位地址。译码逻辑块224将地址的一些最高有效位(其位数由BSIZE域决定)与基址寄存器中所属值及可选寄存器中的BSIZE域进行比较。如所有最高有效地址位都匹配,则译码逻辑块224检测到一个地址匹配。
译码逻辑块224将不同属性译码并如下所述将它们与寄存器212的相应位进行检验。译码逻辑块224将RD/WR属性位于WP位进行比较;或者如RD/WR处于逻辑高位,或者如RD/WR处于逻辑低位而同时WP清零,则译码逻辑块224为此位检测到一个属性匹配。译码逻辑块224将SUPER属性位与SUPER位进行比较,或者如果SUPER属性处于逻辑高位,或者如果SUPER属性处于逻辑低位而同时SUPER位清零,则译码逻辑块224为此位检测到一个属性匹配。译码逻辑块224将INSTR/DATA属性位与DSPACE位比较,并且或者如果INSTR/DATA处于逻辑低位,或者如果INSTR/DATA处于逻辑高位而同时DSPACE位清零,则译码逻辑块224为此位检测到一个属性匹配。如所有编程的属性与相应的属性信号以此种方法相匹配,则译码逻辑块224检测到一个属性匹配。
如译码逻辑块224在一个区域内将地址匹配和属性匹配两者都检测到,则它检查是否有一块更高优先级的子块将取代此匹配。例如,如译码逻辑块224检测到一个对区域0和未用引导子块两者内地址的存取,则在寄存器214中定义的那些属性将决定是否进行存取。即使在区域0既有地址匹配又有属性匹配,但如在未用引导子块内没有属性匹配,则译码逻辑块224仍将阻止周期出现。
时序控制级230包括两个控制单元231和232,及一个连在控制单元231和232之间的早期流水线控制单元233。时序控制级230用作一个向外部总线21提供芯片选择信号的存取状态机,而每个控制单元231和232都有一个输入端连至译码总线201,用于从地址译码级210中的译码逻辑块中接收译码信号,以标明正在进行中的总线周期是否与6个可用区域中的一个或未用引导子块的地址及属性相匹配。如其中一个区域检测到匹配,时序控制级230的控制单元中的一个单元向时序总线202提供顺序时序信息,以反映用于给定编程的接口类型的恰当时序。
控制单元231向时序总线202提供三个时序控制信号,即CE1时序、OE1时序和WE1时序。相类似,控制单元232向时序总线202提供三个时序控制信号,即CE2时序、OE2时序和WE2时序。
例如,地址译码级210中的译码逻辑块224检测到一个对区域0的存取,并作为响应向译码总线201提供控制信号。在时序控制级230中,例如控制单元231那样的控制单元与该总线周期关连起来,并为在此存取未决期间的存取向时序总线202提供时序信号。在第一存取期间可能进行第二存取,地址译码级210中的一个地址译码器可能检测到一个对相应的可编程区域的存取而该存取具有与其可选寄存器中所编程的属性相匹配的属性,以及该地址译码器向译码总线201提供控制信号。由接口类型所决定,控制单元232接着可能开始向时序总线202提供时序信号,以便为此存取将一个或多个芯片选择控制信号加以重叠。
决定于拥有该周期的区域的可选寄存器的ITYPE域,每个时序控制单元为每个芯片选择功能提供时序信号。用于芯片选择电路32所实施的接口类型的信号定时可结合图14-19更好地理解。在这些时序图的每一个图中,连续的由低到高时钟转变标以t1、t2、t3等等。地址、数据和控制信号的活动时间或合法时间标以数字以识别存取。注意这些时序图代表典型信号定时。由于集成电路生产过程条件不同,实际信号定时波形将不同。有些信号由外部总线接口33所提供,但也加以阐述以利于更好理解接口。在图14-19中,箭头代表信号依赖关系或因果关系。
图14阐述接口类型$0的时序图,这种普通异步接口用于对零等待状态、不用时钟定时的装置(即其输出缓存关断时间小于或等于一个时钟周期的装置)的存取。在整个存取期间,该异步接口要求地址和芯片选择信号(CE及OE、WE两者之一)一直保持合法。因此在前一存取完成之前,不可能对同一装置进行连续的存取,因此不允许重叠存取。图14阐述了一个读周期后跟随一个写周期。在读周期和写周期两者的期间,被存取装置在信号CE激活之后例如CE1的下降沿之后的一个延迟时间内使用一个例如A1的地址。在读周期内,被存取装置在信号OE激活之后例如OE1下降沿之后的一个延迟时间内将数据作为输出量送出(也作为送至外部总线接口33的输入量)。在写周期内,被存取装置在信号WE不激活之后例如WE2的上升沿之后的一个延迟时间内将诸如D2(它是外部总线接口33的一个输出量)那样的数据单元加以锁存。异步存储装置的一个例子是由Motorola,Inc.所提供的MCM62995A内存芯片,它除具有一个允许锁存地址(ALE)信号外还能工作于异步模式。
接口类型$1与类型$0类似,但所应用的普通异步接口用于对其输出缓存关断时间等于两个时钟周期的装置进行存取。因此适用于此类存取的信号定时类似于图14所阐述内容但不全同。在读周期内,在允许随后的装置将数据送至外部总线21上之前,芯片选择电路32在它使信号OE不激活之后将等待一个时钟周期。在随后的写周期内,在使先前的OE不激活之后一个时钟周期以前,芯片选择电路32将禁止外部总线接口33送出数据。
图15阐述接口类型$2的时序图,这是具有异步OE的同步接口。具有此种同步接口的存储装置具有一个用于接收时钟信号的输入端,并在由低到高的时钟转变时将地址和数据锁存。在读存取期间,存储装置对信号OE作出响应,异步地提供数据。图15阐述一个读周期后跟随一个写周期。除芯片选择信号外,具有这种接口存取类型的装置检测到一个标号为“WR”的由外部总线接口33提供的写信号。用于在地址段确定该存取是读存取还是写存取。因此在t2时被存取装置检测到该存取是读存取并将A1锁存。芯片选择电路32将信号OE激活,而OE1的下降沿使被存取装置提供数据,后者输入至外部总线接口33。
使用这类接口的存储装置具有将输入量地址锁存的能力,以便使对同一个装置的下一个存取可与前一个存取相重叠,这样的装置可在读存取时将其内部数据挂起,直至信号OE激活时止。因此连续写周期的地址段可与读周期的数据段的末尾相重叠。芯片选择电路32在t3之前激活信号CE,以使被存取装置将地址A2锁存。由于信号WR在t3时活动,被存取装置检测到一个写存取。在读存取的数据较完成后,芯片选择电路32激活信号WE,以使被存取装置将数据锁存,从而在t5时完成写周期的数据段。
图15所阐述的时序只是孤立地表现了芯片选择电路32的将两个连续的接口类型$2存取重叠起来的能力。然而数据处理器30并不允许这种重叠,以便提高额外保护防止可能的总线竞争,在数据处理器30中,外部总线接口33并不足够早地向芯片选择电路32提供恰当的能使芯片选择电路32将第二个存取的地址段重叠的握手信号。因此实际上外部总线接口33并不提供A2,及芯片选择电路32在t4前的一个建立时间之前并不激活CE和WR信号。
称为“具有早期同步OE的同步接口”的接口类型$3先前在图5中曾阐述过。注意对于接口类型$3讲,芯片选择电路32以与接口类型$2相同的方式完成写周期,这已在图15中阐述过。
称为“具有固定脉冲串的脉冲串式区域”的接口类型$5具有一个“类型I”的脉冲串式接口并使用一个异步OE信号。芯片选择电路32实施一个4周期的固定脉冲串长度。类型I脉冲串式接口分别使用OE和WE信号使被存取装置送出数据或将数据锁存进来。该接口还需要一个BDIP信号以控制被存取装置输出下一个脉冲串拍的时间。类型I脉冲串式接口装置具有一个地址锁存器,因此对该装置的下一个存取的地址可与前一存取地址重叠;也即,在时钟由低到高转变时刻将地址锁存之后,存取的地址不必再保持为合法。
图16阐述一个使用接口类型$5的读周期的时序图例子。在图16所示例子中,该区域的相应的可选寄存器中的ACK-EN位配备为允许外部确认信号清零。在时间点t2,被存取装置同步地将地址锁存并在由信号AACK的激活而定的t2时刻完成地址段。然而在t2时被存取装置保持信号TA不活动,因此芯片选择电路32必须插入一个等待状态。随后,在t3时被存取装置激活信号TA以标明它准备完成数据段,并提供第一数据单元D10。外部总线接口33激活信号BDIP以标明它在等待随后时钟由低到高转变时的脉冲串下一拍。外部总线接口33分别在转变时刻t4、t5和t6将连续的数据单元D11、D12和D13锁存。外部总线接口33在t6之前使信号BDIP不激活,标明数据单元D13是脉冲串的最后一拍。被存取装置保持数据单元D13合法,直至使信号OE不激活之后一个延迟时间止。
当同一装置在连续两个周期内被存取时,该接口允许随后的存取的地址段与先前的存取的数据段重叠。被存取装置在先前脉冲串的最后一拍中检测到第二个存取。因此,如图16所阐述的,外部总线接口33提供一个随后地址A2及芯片选择电路32在t3前一个建立时间内激活信号CE,然后被存取装置在t6前一个建立时间内提供信号AACK,从而完成第二个存取的地址段。
图17阐述使用类型I脉冲串式接口(例如接口类型$5)的写周期的时序图。与图16一样,相应的可选寄存器中区域的ACK-EN位配备为允许外部确认信号清零。在t2时,被存取装置将地址同步地加以锁存并在由信号AACK的激活而定的t2时刻完成地址段。在t2时被存取装置激活信号TA以标明它准备完成数据段,并将第一个数据单元D10锁存。接着激活信号BDIP以标明外部总线接口33将在随后的时钟由低到高转变时刻提供脉冲串的下一拍。数据处理器30分别在转变时刻t3、t4和t5送出连续的数据单元D11、D12和D13。t5时信号BDIP不活动,标明数据单元D13是脉冲串最后一拍。如图16一样,图17阐述重叠存取的地址段,该第二存取的地址段在t5时脉冲串的最后一拍期间结束。
称为“具有可进行流水线操作的OE的固定脉冲串”的接口类型$7支持先前图6中所阐述过的读存取。该接口类型能挂起其内部数据,直至信号OE激活时止。该接口可用作一个异步接口,但只在由TA-DLY域所定义的数量的等待状态后和在信号OE激活后才提供数据。接口类型$7是一个类型I接口,其写周期时序阐述于图17中。
接口类型$8具有一个“类型II”脉冲串式接口,后者并不需要一个OE信号,作为替代,它使用LAST信号。当在时钟由低到高转变之前一个建立时间内将信号LAST激活时,一个类型II装置随着时钟的转变将其数据输出缓存置于高阻抗状态。在装置的存取等待时间或等待状态期间,CE信号必须保持活动。这类装置也需要一个TS信号。
图18阐述一个使用存取类型$8的读接口的时序图。在所阐述的例子中,被存取装置具有两个等待状态,并返回它自己的确认信号。直至当被存取装置激活信号AACK的t3时,地址段才结束。在类型II脉冲串式接口下,在装置的等待时间的期间内信号CE一直保持活动,直至数据段开始时的t3以后时止。这种接口存取类型没有OE信号。从t4开始,当时钟连续由低到高转变时,被存取装置将信号TA激活。在t7时外部总线接口33激活信号LAST,从而结束4拍脉冲串式传送。
该接口允许随后的存取的地址段与先前的存取的数据段重叠。因此如图18所阐述的,芯片选择电路32提供随后地址A2并在t4前一个建立时间内激活信号CE。被存取装置检测到随后的存取的地址段,并在由信号AACK的激活所定的t7时刻将A2锁存。然而信号CE必须在CE2期间保持活动,直至发生第二存取的数据段(t7的随后时间)时止。这种类型的被存取装置具有一个地址锁存器,所以它可以早在t7就锁存A2,从而完成下一个地址段。
图19阐述使用存取类型$8的写接口的时序图。再者,被存取装置具有两个等待状态,并在t3时刻返回包括AACK在内的它自己的确认信号,以完成传送的地址段。如在类型II脉冲串式读周期内一样,在装置等待时间的期间信号CE保持活动,因此CE一直保持活动,直至数据段开始的t3之后。从t4开始,外部总线接口33在连续的时钟周期内提供数据单元D10、D11、D12和D13,同时被存取装置将这些数据单元锁存。自t4开始,被存取装置在连续的时钟周期内激活信号TA,从而标明脉冲串每一拍数据段的结束。犹如类型II脉冲串式读周期中一样,在t7时外部总线接口33激活信号LAST,从而完成此4拍脉冲串式传送。随后周期的地址可用图18所阐述的同样方式加以重叠。
称为“具有同步OE和早期重叠的同步接口”接口类型的接口类型$9如前面图7所阐述那样完成读存取。此类型相似于接口类型$3,不同之外是它将第2个存取的地址段与先前存取的早期同步OE重叠起来。一个接口存取类型$9写存取与前面图15所阐述的普通同步写存取相同。
接口类型$4、$6和$A-$F保留不用。如时序控制级230中的活动控制单元检测到一个对具有这些保留类型中的一个的接口进行存取,它禁止产生任何芯片选择时序控制信号,因此芯片选择生成单元200不完成任何相应的内存存取。因此由于软件错误造成的此域中不正确编码将不会引起非法存取。
由于芯片选择电路32支持一系列接口,因此它非常灵活。然而芯片选择电路32所支持的一套接口在不同实施例中可能不同,以满足不同应用要求。此外,芯片选择电路32支持高度流水线操作的接口,从而提高数据处理器30的性能。具体说,接口存取类型$3、$7和$9比已知接口很大地改善了性能。使用常规顺序的(用时钟定时的)电路设计技术,将现有存储装置改造使之遵照此处所阐述的时序,即可做出与接口存取类型$3、$7和$9一起使用的存储装置。
为处理重叠存取,早期流水线控制单元233检测两种主要情况。第一种情况是对同一区域或芯片进行存取的情况,这些存取最多被允许将下一个地址段与第一个存取的数据段重叠(如果第一个存取的等待时间可以确定,即ACK-EN=1)。例如,如第一个存取是对一个流水线操作装置进行的,则对同一装置的第二个存取将等待,直至第一个存取准备完成其数据段时止。然而第二个存取的地址(或CE)能与第一个存取的数据重叠。
第二种情况是对两个不同区域或芯片的两个存取。第二种情况中,为将对两种不同区域或芯片的存取重叠起来,时序控制级230强制一套流水线操作规则,以保证数据完整性和恰当的周期结束。下面表5更详细地描述这些规则。
表5
<p>规则1涉及对一个区域的读存取,后跟随一个对另一区域的另一个读存取的情况。此情况中,芯片选择电路32将第二读取与第一读取进行流水线操作。
规则2涉及一个写存取后跟随一个读存取的情况。此情况中,芯片选择电路32将第二读取与第一读取进行流水线操作。
规则3涉及单拍写存取后跟随另一个写存取的情况。此情况中,有些装置要求在地址或CE成为合法后的一个时钟周期内可以使用写周期的数据。如不行,则装置使写周期作废。如两个存取都由芯片选择电路32加以结束(即两个区域的可选寄存器中都设置ACK-EN位),则芯片选择电路32在第一写周期的最后一个数据段时即激活第二写周期的CE,从而将存取重叠。如情况为一个脉冲串式写后跟随另一个写,则芯片选择电路32在第一写周期标明已激活最后数据拍(BDIP或LAST)之后为第二写周期内激活CE。
规则4涉及读周期后跟随一个写周期的情况。芯片选择电路32在读周期结束之前将写周期的CE激活,从而将存取重叠。然而在所阐述的实施例中,外部总线接口33并不向芯片选择电路32提供允许重叠所用的恰当握手信号。在为写周期激活CE之前外部总线接口33并不提供写周期的地址信号。
规则5涉及两个连续的存取,其中有一个存取的等待时间(即等待状态的数量)是未知数(即其ACK-EN被清零)。此情况中,只当第二存取的区域具有的接口类型能在总线可用之前挂起数据时,芯片选择电路32才将两个存取进行流水线操作。例如,第一存取是对其ACK-EN清零的区域的存取,及第二存取是对其ACK-EN设置并具有接口存取类型$8的区域的存取。此情况中,因第二区域不可以在没有OE时挂起其数据,因此在第一存取完成前芯片选择电路32必须将第二存取挂起。注意如果第一存取是对其等待时间为未知数的区域的存取及第二存取是对同一区域,则芯片选择电路32等待一个外部AACK,后者允许芯片选择电路32将对于同一区域的随后的CE激活。
规则6涉及的情况是第一存取的区域未被芯片选择电路32定义,例如一个专用动态RAM(DRAM)控制器,及第二存取是对由芯片选择电路32所定义的另一区域。此情况中,第一区域提供它自己的芯片选择信号,所以芯片选择电路32不知道接口存取类型和等待时间。因此芯片选择电路32不将第二存取和第一存取进行流水线操作。
规则7涉及一个对脉冲串式区域的固定4拍脉冲串式读存取,后面跟随一个对其它区域的读取。此情况中,如第二存取的区域可进行流水线操作并能挂起其数据,则芯片选择电路32将第二存取进行流水线操作。注意如果第二存取具有接口存取类型$8,则它不能挂起其数据及芯片选择电路32将不使第二存取进行流水线操作。
规则8涉及对同步区域的第一存取,跟随一个对异步区域的第二存取。此情况中,由于第二存取不能进行流水线操作,因此芯片选择电路32不使第二区域进行流水线操作。
规则9涉及对异步区域的第一存取,此情况中,由于在第一存取完成前外部地址和数据总线两者必须可供第一存取使用,因此芯片选择电路32不使第二存取与第一个流水线操作。
注意芯片选择电路32与外部总线接口33一起用于实施这些流水线操作规则。在某些情况下,外部总线接口33进行控制。对规则4讲,结合上面图15所描述的,芯片选择电路32支持流水线操作但外部总线接口33不支持。对于规则9讲,外部总线接口33也并不足够早地提供用于流水线操作的AACK或TA握手。在其它情况下,芯片选择电路和32检测到不兼容的存取。
管脚配备级240包括13个管脚配备逻辑电路,包括代表性的管脚配备逻辑电路和241、242、243和248。每个管脚配备逻辑电路具有一个连至译码总线201的第一输入端,一个连至时序总线202的第二输入端和一个用于提供未用芯片选择信号的输出端。管脚配备逻辑电路241提供一个标为“CSBOOT”的输出信号。管脚配备逻辑电路242提供一个标为“CS0”或另一标号“CSBOOT OE”的输出信号。管脚配备逻辑电路243提供一个标为“CS1”的输出信号。管脚配备逻辑电路248提供一个标号为“CS11”的输出信号。
芯片选择电路32可编程地通过13个集成电路管脚提供芯片选择信号。然而,正如高集成度数据处理器或微控制器中常规做法一样,这些管脚与其它管脚功能或数据处理器30的端口共享以及能可编程地选择以便将输出信号加以配备,用于不同终端用户的应用。
虽然本发明是在最佳实施例的范围内描述的,熟悉技术的人清楚地知道本发明可用不同方式修改并在上面具体描述的范围之外组成许多实施例。相应地,所附权利要求书用于包括不背离本发明实质和范围的对本发明的所有修改。
权利要求
1.一种具有可编程内存存取接口类型的集成电路微处理器(30),包括一个中央处理单元(CPU)(31),用于执行指令和存取内存;一个连至所述CPU(31)并与一个内存区域相关连的可选寄存器(61),所述可选寄存器(61)存放一个编码值(62);一个连至所述可选寄存器(61)的译码器(63),用于将所述编码值(62)加以译码,以对存取所述内存区域的所述CPU(31)作出响应,提供一个译码信号,所述译码信号采取众多状态中的一个,其中包括合法状态和备用状态;以及一个连至所述CPU(31)和连至所述译码器(63)的存取控制器(64),或者当所述译码信号处于合法状态时所述存取控制器(64)用于激活众多外部控制信号,所述外部控制信号具有由相对应于所述译码信号的可编程接口类型所决定的时序特性,或者当所述译码信号处于备用状态时所述存取控制器(64)用于保持所述众多外部控制信号不活动,此处集成电路微处理器(30)防止软件错误造成未经定义的内存存取。
2.权利要求1的集成电路微处理器(30),其中所述众多外部控制信号包括一个允许芯片操作信号,一个允许输出信号和一个允许写信号。
3.权利要求1的集成电路微处理器(30),还包括一个连至所述CPU(31)和与第二内存区域相关连的第二可选寄存器,所述第二可选寄存器存放一个第二编码值;所述译码器(63)进一步连至所述第二可选寄存器,用于将所述第二编码值加以译码以便对存取所述第二内存区域的所述CPU(31)作出响应,提供一个第二译码信号,所述第二译码信号采取众多状态中的一个,包括合法状态和备用状态;以及所述存取控制器(64)对存取所述第二内存区域的所述CPU(31)做出响应,或者当所述第二译码信号处于合法状态时用于激活众多外部控制信号,所述外部控制信号具有由相对应于所述第二译码信号的可编程接口类型所决定的时序特性,或者当所述第二译码信号处于备用状态时所述存取控制器(64)用于保持所述众多外部控制信号不活动。
4.一种用于同步地存取内存的方法,包括以下步骤在第一时钟周期内为第一内存存取提供第一地址;激活一个第一控制信号,以标明在所述第一时钟周期后预定数量的等待状态后的第二时钟周期内的所述第一内存存取的一个数据段;以及在紧接所述第二时钟周期后的第三时钟周期内接收由所述第一地址所存取的第一数据单元。
5.权利要求4的方法,其中所述激活所述第一控制信号的步骤包括激活一个允许输出控制信号的步骤。
6.权利要求4的方法,还包括激活一个用于标明所述第一内存存取的地址段的第二控制信号的步骤。
7.权利要求6的方法,其中所述激活所述第二控制信号的步骤包括激活一个允许芯片操作信号的步骤。
8.权利要求6的方法,还包括以下步骤在所述第三时钟周期内为第二内存存取提供第二地址;以及激活所述第二控制信号,以标明在所述第三时钟周期内所述第二内存存取的一个地址段。
9.权利要求4的方法还包括以下步骤激活一个第二控制信号,以标明在所述第三时钟周期内正在进行中的一个脉冲串数据周期;以及在所述第三时钟周期随后的第四时钟周期内接收一个第二数据单元。
10.权利要求4的方法还包括以下步骤激活一个第二控制信号,以标明在包括所述第三时钟周期在内的第一众多时钟周期内正在进行中的一个脉冲串数据周期;以及在随所述第三时钟周期之后并与所述第一众多时钟周期相对应的第二众多时钟周期内接收众多脉冲串数据单元。
全文摘要
一种集成电路微处理器(30)使用内部产生的具有可编程存储器存取接口类型的控制信号对外部存储器进行存取。一个与内存区域相关连的寄存器(61)存放一个编码值。在对该内存区域进行存取时,一个译码器(63)将编码值加以译码以提供译码信号。如译码信号处于合法状态,则一个存取控制器(64)将具有对应于合法状态的时序的外部控制信号加以激活。如译码信号处于备用状态,则存取控制器(64)将外部控制信号保持为不活动,不让存取发生。
文档编号G06F15/76GK1139238SQ9511667
公开日1997年1月1日 申请日期1995年8月30日 优先权日1994年8月31日
发明者秦煌烈, 迈克尔·E·格莱登, 小杰拉尔德·E·沃克 申请人:摩托罗拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1