在复位后用于配置一个数据处理系统的方法及其装置的制作方法

文档序号:6349154阅读:278来源:国知局
专利名称:在复位后用于配置一个数据处理系统的方法及其装置的制作方法
技术领域
本发明涉及数据处理器,并且更特别地,涉及在复位后用于配置一个数据处理系统的一个方法及其装置。
为了使将一个数据处理系统设置为一个已知的初始状态,大多数数据处理系统被配备了一个管脚或者其它机制,来促使这个系统来进行复位。当这个处理系统完成了复位条件后,就从存储器中的一个已知位置拾取一个复位矢量的地址(复位异常矢量)。然后,这个地址被用于拾取并且执行这个复位异常例程。典型地,这个复位异常例程包括一些指令,用来这个系统进行初始化并且准备好执行随后的编程指令。
在包括一个32比特地址空间中的一个处理系统中,这个复位矢量包括由4个8比特字节组成的一个32-比特字。这个复位矢量被从其比特宽带不同的一个存储器结构中拾取。例如,一个32-比特宽的存储器结构,一个16-比特宽的存储器结构,或者一个8-比特宽的存储器结构可以被用于来保存一个特定系统的复位矢量。用于保存这个复位矢量的存储器结构的类型将决定拾取包括这个复位矢量的4个8-比特字节所需要的存储器操作。
用于确定保存这个复位矢量的存储器的存储器结构的一个现有技术在这个处理系统上包括附加的管脚,其中在这些附加的管脚上的信号指示这个存储器的结构。附加的管脚给这个处理系统增加了费用,并且这样是不希望有的。
用于确定存储器结构的另一个现有技术包括对这个处理系统的一个数据总线进行采样。从对这个数据总线进行采样而决定的值指示其中保存了这个复位矢量的特定存储器结构。尽管这个技术使这个处理系统可以支持不同的存储器结构,但是,为了将这个数据总线驱动到指示所使用的存储器结构的这些特定值,就需要外部的胶逻辑(gluelogic)。这个外部的胶逻辑增加了整个处理系统的费用,并且也相反地影响了这个处理系统的功能,因为它引入了附加的寄生效应,并且也可能增加功率消耗。
用于确定保存这个复位矢量的存储器结构的另一个技术是在这个处理系统中包括非挥发性存储装置。然后,这个非挥发性存储装置可以被用于保存指示一个特定系统中所使用的存储器结构的一个值。再一次,尽管这允许在这个处理系统中使用各种比特宽度的存储器结构,包括非挥发性存储装置会增加系统的费用,因为非挥发性存储装置,例如电可擦除编程只读存储器,的实现是复杂的,并且是昂贵的。除了费用增加外,非挥发性存储装置经常是难以再编程的,这样使改变不同的存储器结构就更加困难了。
其它的现有系统假定一个特定的外部存储器结构,并且需要这个外部存储器与这个假定一致。

图1显示了包括一个CPU和一个存储器控制器的一个处理器。3个不同的存储器结构也被显示在图1中,包括32-比特,16-比特,和8-比特结构。也显示了存储器控制器用于访问每一个可能不同的存储器结构的地址数据和控制信号。
如果在图1中所显示的系统假定具有一个16-比特数据总线的一个存储器结构被用于保存这个复位矢量,两个连续的、对地址0x00(十六进制格式)和0x02进行的读取操作将被执行,来检索组成这个32-比特复位矢量的4个字节(T,U,V和W)。尽管这两个访问的执行相对16-比特存储器是可行的,但是使用相同的假设来对32-比特和8-比特存储器结构载入这个复位矢量的地址的类似尝试将失败。
对8-比特存储器结构来说,仅执行了使用两个地址的两个读取操作。虽然这个存储器控制器对每一个读取操作,将期待在D[310]数据线上接收16-比特的数据,但是这个8-比特存储器将仅驱动D[3124]的数据线。所以,对这个8-比特存储器,将仅检索到包括这个复位矢量地址的4个字节中的两个字节。
对32-比特存储器结构来说,32-比特存储器将忽略地址线A[1],这样,两个连续的、对地址0x00和0x02进行的读取操作将产生对被保存在这个32-比特存储器的位置0x00上的这个32-比特字的重复读取。尽管这个32-比特存储器将整个复位矢量地址驱动到这个数据线D[310]上,但是这个存储器控制器假定仅对每一个存储器访问,接收在数据线D[3116]上的16-比特数据。这样,这个存储器控制器将解释存储器操作的结果,并且到达一个地址,这个地址不是组成这个复位矢量地址的完整的4-字节地址(TUVW),而是包括这4个字节中的两个字节(VWVW)的两个拷贝。
所以,就需要使一个处理系统能够利用各种比特宽度的存储器结构,而不需要附加的管脚,非挥发性存储位置,或者数据总线采样来精确地复位完成时这个复位矢量的地址的一个方法及其装置。另外,也希望有这样一个方法和装置,以允许在完成复位后,就紧接着配置各种处理系统的参数,以使随后的操作将能够利用这些配置参数。
本发明被通过示例所显示,但是不局限于附图,在附图中,类似的标号指类似的部件,并且其中图1显示了一个现有技术处理系统的一个框图;图2显示了根据本发明的一个特定实施方式,用于保存一个复位矢量地址的各种存储器结构的一个框图;图3显示了根据本发明的一个特定实施方式,被用于控制寄存器结构的一个被拾取复位矢量值的一个框图;图4显示了根据本发明的一个特定实施方式,一个数据处理系统的一个框图;图5显示了根据本发明的一个特定实施方式,用于配置一个数据处理系统的一个方法的一个流图;图6显示了根据本发明的一个特定实施方式,用于配置一个数据处理系统的一个替代方法的一个流图;图7显示了根据本发明的一个特定实施方式,被用于配置一个控制寄存器的一个配置值的一个框图;和图8显示了根据本发明的另一个特定实施方式,一个数据处理系统的一个框图。
技术人员将理解,图中所显示的部件仅仅是为了简单和清晰,并且没有必要按照原尺寸进行显示。例如,图中某些部件的尺寸相对其它部件可能被夸大,以助于更好地理解本发明的实施方式。
一般,本发明提供了一个方法和装置,来使当完成复位时,可以使用各种比特宽度的存储器来对一个数据处理系统进行配置。在一个实施方式中,组成这个复位矢量的这4个字节被通过独立的存储器操作,从保存这个复位矢量的存储器中拾取出来。这4个字节被以一个预定的方式保存在每一个可能的存储器结构中,以使4个预定的地址将在数据总线的一个共同部分上检索4个不同的字节。被检索的复位矢量的部分可以被用于配置这个数据处理系统中的各种参数,以使与这个系统的存储器或者其它功能特性修改的附加参数被初始化。包括在这个复位矢量中的配置值包括数据和控制部分,以使这个控制部分决定这个配置值的数据部分如何被应用到这个数据处理系统中的各种参数。
在另一个实施方式中,在从存储器中检索这个复位矢量以前,拾取一个配置值。这个被拾取的配置值可能包括这样的信息,例如存储器结构的比特宽度(数据字段尺寸),与相应于这个存储器结构的访问时间相关的信息(等待状态控制信息),或者在这个存储器结构中所使用的比特顺序(以小的或者大的进行结束)。这样,被检索的配置值被用于配置对随后进行的从存储器中拾取这个复位矢量进行控制的参数,以使在这个存储器结构中对复位矢量的保存可以被优化成适合所使用的存储器类型。在其它的实施方式中,这个被检索的配置值被用于配置使能/非使能包括在这个数据处理系统中的调试(debug)或者仿真特征的配置参数。
本发明使一个数据处理系统利用各种存储器结构来保存这个复位矢量,而不增加非挥发性存储装置,附加的胶逻辑,或者附加的管脚,这在现有技术系统中是不可能的。除了复位矢量外,还可以获取其它配置信息来初始化这个处理系统中的附加参数,以使在复位后初始执行的指令被以一个比现有技术方法更有效的方式执行,现有技术的方法需要执行几个指令来配置这样的参数。
参考图2-8,可以更好地理解本发明。图2显示了可以与一个数据处理系统一起使用的一个存储器映射210。使用显示为从0x00-0xFFFFFFFF的地址比特来定义在存储器映射210中的位置。复位处理器例程220被包括在存储器映射210中,并且在这个处理系统完成复位后被执行。为了执行这个复位处理器例程220,被称作复位矢量的这个复位处理器例程220的地址被从存储器中拾取。复位矢量被显示为具有一个值0xTUVW。字符T,U,V和W中的每一个表示32-比特复位矢量中的一个8-比特字节部分。
如所显示的,复位处理器例程220被优选保存在一个引导存储器设备240中。为了执行复位处理器例程220而必须拾取的这个复位矢量也可以被保存在引导存储器设备240中,或者它可以被保存在一个独立的存储器设备中。为了实现对组成复位处理器例程地址的4字节的拾取,这4个字节可以分别保存在每一个不同存储器结构中的不相邻位置。这样,复位矢量的相邻部分被保存在存储器中不相邻的地址上,并且被至少一个比特所隔开。优选地,在存储器中复位矢量各部分的分隔是基于这个处理系统的数据总线的宽度的一个函数。优选地,通过将一第一地址(基地址)增加与数据总线中字节数目相等的一个值就可以产生复位矢量部分的随后地址。例如,如果数据总线的总线宽度是32比特(4个字节),如图2所显示的,字节部分的隔开可能是4字节。这样,将地址增加4就可以在复位矢量部分之间进行移动。
在这里所提供的描述中,术语“总线”被用于指可以用于传送一个类型或者多个类型的信息,例如数据,地址,控制,或者状态信息的多个信号或者导线。中括号被用于表示总线的导线或者一个值的比特位置。例如,D[3124]可以被用于表示一个数据总线上最高的8比特。
在32-比特存储器250中,这个32-比特存储器250对每一个存储器访问均返回32-比特的数据,并且复位处理器例程地址的4个字节中的每一个被包括在一个独立的32-比特字中的最高字节。这样,复位矢量的最高字节,T252,是在位置0x00上的字的最高的字节。这样,当对地址0x00执行一第一读取操作时,值T将被提供在数据总线的D[3124]上。3个随后的读取操作将在随后的读取操作中使用地址0x04,0x08,0x0C来在数据总线的相同部分返回值U254,V256和W258。
从32-比特存储器250中检索值T-W252-258的相同存储器操作将被用于从16-比特存储器260中检索值T-W262-268。注意,16-比特存储器将仅驱动16-比特的数据总线,所以将被以这样一个方式连接到数据总线,以使对一特定地址所检索的最高数据字节被返回在数据总线的最高部分(D[3124])。这样,从16-比特存储器260中读取地址0x00的一个存储器操作将在与使用32-比特存储器250对这个地址进行读取时的数据总线的相同部分上,返回数据T262。
图2也显示了以这样一个方法保存组成复位矢量的4字节的一个8-比特存储器270,以允许相同的存储器操作可以被用于32-比特存储器250或者用于16-比特存储器260,以检索复位矢量的合适的值。所以,访问地址0x00,0x04,0x08,和0x0C的4个存储器读取操作可以被用于8-比特存储器270,以使可以相应地返回值T-W272-278。为了使对每一个不同的存储器结构,数据被驱动到数据总线的相同部分上,8-比特存储器270应被配置成驱动数据总线的最高8-比特部分(D[3124])。
图3显示了被包括在一个被拾取复位矢量值330中的、以配置这个处理系统中一个或者多个参数的一个配置值310的使用。如所显示的,被拾取的复位矢量值300包括组成保存复位处理器例程的地址的4个数据字节T,U,V,W。通过利用组成被拾取复位矢量值300的比特的一部分作为一个配置值310,在一个复位条件后,在对被拾取的复位矢量值300进行初始化检索的期间,可以立即检索数据处理系统的配置参数。如这样时,通过使用配置值310而配置的参数可以在复位完成后被立即配置,这样可以使随后的处理系统的操作可以利用被修改的参数值。
注意,被包括在配置值310中的、需要被以一个特定的方式配置这个处理系统中特定参数的比特的设置将产生对被拾取复位矢量值300所指示的地址的一个改变。这样,引导存储器设备240可以被构造成包括多于一个的复位处理器例程。这些例程中的每一个可以被保存在与各种值中一个相应的一个地址中,这各种值可以根据在配置值310中特定的设置产生被拾取的复位矢量值300。图2显示了被保存在地址0xT′U′V′W′的这样一个替代复位处理器例程230。注意,替代的复位处理器例程230简单地可以是将这个处理器重新定向到保存被执行的实际例程的另一个位置的一个指针。所以,如果在一个特定系统中可以期望多个配置值310,与这多个复位矢量地址相应的多个处理器例程就被保存在引导存储器设备240中。
因为配置值310内不同的设置需要多个复位处理器例程(即使它们仅仅是指针),优选地,这个配置值310被包括在被拾取的复位矢量值的最低有效位部分。这样,其中需要分布多个复位处理器例程的、引导存储器设备240中的存储器区域可以被减少。如果被拾取复位矢量300中更高有效位的比特被用于配置值310,这多个例程将被分布在整个引导存储器设备240中,这样降低了引导存储器设备240用于其它目的的效率。
配置值310也可以是配置这个处理系统内一个特定参数的一单个比特,或者它也可以是配置这个处理系统内一个或者多个特定参数的多个比特。如果多个比特被包括在这个配置值310中,这个配置值310可以包括一个数据部分和一个控制部分。这个数据部分与将被保存在特定参数位置、以将这些参数配置到合适的设置的实际数据值相应。这个控制部分可以被用于控制配置值310数据部分的应用或者其部分。
图3中所显示的示例显示了包括多个数据部分312-318的数据部分。图3示例中的配置值310的控制部分被显示成包括一个参数控制部分320。如所显示的,数据部分312-316被应用到控制寄存器350的参数A352,B354,和C356。
控制寄存器350可以驻留在一个CPU中,一个接口模块,或者其它包括在这个数据处理系统的附加逻辑中。这个控制寄存器350可以是一个芯片选择控制寄存器,用于控制数据处理系统与经过一个芯片选择信号被访问的一个模块进行接口通信的方式。在一个示例中,控制寄存器350是与一个存储器结构相应的一个芯片选择寄存器。在这样一个示例中,参数A352可以与用于对这个芯片选择信号所选择的存储器结构进行访问的等待状态数目相应。参数B354可以与一个停止周期参数相应,这个停止周期参数判断这个处理系统是否在存储器操作中包括停止周期。最后,参数C356可以与存储器结构的数据总线的宽度相应。这样,在完成了复位后,特定存储器结构的正确参数设置将被包括在这个芯片选择寄存器中,以使可以正确地构造随后的存储器操作。
在另一个实施方式中,控制寄存器350与控制调试和仿真设置和操作的一个控制寄存器相应。这样,参数A-C352-356判断特定的调试或者仿真模式是否是可以操作的。例如,可以用参数A-C352-356中的一个来使能或者关闭显示状态,显示状态使得内部信号可以通过外部可访问信号看出。其它的调试和仿真功能可能包括性能监测,程序跟踪,在退出复位状态后,允许直接进入一个调试模式,使能/关闭到一个或者多个模块的时钟,使能退出复位的一个快速或者慢速时钟速率,等等。
配置值310的数据部分318可以被提供给一个系统控制参数362,这个系统控制参数362对控制寄存器350来说是外部参数。类似地,配置值310的数据部分的不同部分可以被应用到这个数据处理系统的各种参数。这样,数据部分可以配置与这个数据处理系统的很宽范围内的功能相应的参数。
如前面所提到的,配置值310的控制部分被显示在图3中,并且包括参数控制部分310,可以被用于控制将各种数据部分312-318应用到它们相应参数。在一个实施方式中,参数控制部分320可以是一个单比特,表示数据部分312-318中的任何部分是否可以应用到它们相应的参数。在另一个实施方式中,数据部分312和314可以被应用到相应的参数,而与参数控制部分320的状态无关。但是,在这相同的实施方式中,数据部分316和318可以被参数控制部分320所控制,以使可以根据参数控制部分320的状态决定它们可以或者不可以应用到它们相应的参数。
在另一个实施方式中,参数控制部分320可以包括多个比特,每一个比特与配置值310内的特定数据部分联系在一起。这样,每一个数据部分312-318在参数控制部分320内有一个相应的比特,来决定这个特定的数据部分是否可以被应用到其相应的参数。注意,在某些实施方式中,数据部分312-318中仅某些数据部分可以被参数控制部分320内的一个相应比特所控制。
配置值310的控制部分的另一个可能用途是决定数据部分312-318中每一个将应用或者不应用的相应参数。这样,配置值310的控制部分可能决定一个特定数据部分被应用到一第一控制寄存器中的一第一参数,还是被应用到可以位于相同的控制寄存器中或者是位于另一个控制寄存器中的一第二参数。该领域内的普通技术人员将很清楚,配置值310内可以使用各种数据和控制部分的组合,来在一特定数据处理系统内实现所需要的参数配置。
图4显示了包括可以连接到所显示的各种存储器结构的灵活性的一个数据处理系统400。这个数据处理系统400包括处理器410,并且32-比特存储器440,16-比特存储器450,和8-比特存储器460中至少一个。处理器410包括可以被连接到接口电路(接口模块416)的一个中央处理单元(CPU 412)。处理器410可以被形成在一单个集成电路上,并且可以是一个微控制器或者类似的器件。每一个存储器结构可以是任何类型的存储器。
处理器410也可以包括附加的逻辑420,附加的逻辑420可以连接到CPU412和接口模块416中的一个或者两个。附加的逻辑420可以是被用于向这个系统提供调试和/或者仿真功能的调试/仿真电路。这样的调试/仿真功能可能包括允许显示周期,背景调试模式,程序跟踪等等。接口模块416连接到被包括在这个数据处理系统400中的存储器结构(存储电路)。在图4所显示的实施方式中,处理器410包括一个32-比特数据总线和一个N-比特地址总线。执行存储器操作所需要的控制信号被经过一个控制总线提供到存储器设备。
在一个32-比特存储器440被包括在这个数据处理系统400中的情形下,当接口模块416对一个存储器读取操作进行初始化时,将驱动整个数据总线(D[310])。如果与这个复位矢量地址(T-W)相应的数据字节被保存在32-比特存储器440中,如所显示的,使用地址0x00,0x04,0x08和0x0C的4个读取操作将促使组成这个复位矢量的4个字节被经过数据线D[3124]提供到接口模块416。
注意,在用于检索这些值的地址之间的间隔是32-比特存储器440的最小地址增量。这里的最小地址增量是基于32-比特存储器440或者不接收或者忽略地址线A[10]的这个事实来确定。
在包括16-比特存储器450的一个数据处理系统中,与上面所描述的、用于从32-比特存储器440检索这个复位矢量的存储器操作相同的存储器操作可以被用于在数据总线的相同部分上,从16-比特存储器450检索这个复位矢量。注意,16-比特存储器450不能够忽略地址线A[1]。但是,通过将基于32-比特存储器440内可能的寻址间隔尺寸组成复位矢量的字节分隔(在这个所显示的示例处理系统中,可能的最大的比特宽度),用于拾取这个复位矢量的地址可以被普遍地应用到各种可能的存储器结构。
如果这个数据处理系统包括一个8-比特存储器460,与用于从32-比特或者16-比特存储器系统检索这个复位矢量的地址集合相同的地址集合可以被用于从8-比特存储器460检索这个复位矢量。注意,8-比特存储器460接收并且利用地址线A[10]。但是,因为根据在32-比特存储器440中可以访问的最小间隔尺寸,被选择用于保存复位字节的字节部分的地址位置相互之间有距离,被用于检索这个复位矢量的地址可以被普遍地应用。注意,8-比特存储器460仅连接到数据总线的一个8-比特部分。在图4所显示的这个示例中,这包括数据线D[3124]。这样,接口模块416应期待将在这些特定的数据线上接收与复位矢量的各种部分相应的数据。该领域内的普通技术人员将清楚,被用于检索组成复位矢量的数据字节的特定数据线可以被根据接口模块416和可能的8-比特和16-比特存储器结构450和460之间的连接而修改。
如参考图3所描述的,这个复位矢量可能包括将被应用到这个数据处理系统400中各种参数的一个配置值。处理器410被显示为在其各种模块中包括一些控制寄存器414,418和422,控制寄存器可能包括根据这个配置值而被配置的参数。例如,CPU 412被显示为包括一个控制寄存器414,接口模块416被显示为包括一个控制寄存器418,和附加的逻辑模块420包括一个控制寄存器422。这样,可能被包括在这个复位矢量中的配置值可能包括被应用到可能包括在这些控制寄存器414,418和422中的一个或者多个的参数。
图5显示了与用于配置一个数据处理系统的一个方法相应的一个流图。这个方法从步骤502开始,在步骤502中,这个数据处理系统从一个复位状态开始。当这个复位信号是负的,以使这个复位状态将退出时,这个方法进行到步骤504。在步骤504中,在这个数据处理系统中的硬件被初始化为使这个数据处理系统开始操作的各种预定状态。
在步骤506中,一个复位矢量地址被产生。在图4的这个数据处理系统400中,在步骤506所产生的这个复位矢量地址将与被用于从存储器检索这个复位矢量的基地址相应。在图4所显示的特定示例中,这将与地址0x00相应。应注意,这个复位矢量的基地址将位于存储器结构中的各个点上。
在步骤508中,复位异常处理器例程(复位矢量)的地址被使用硬件初始化的复位值而拾取。在包括一个32-比特地址空间的一个系统中,通过执行对存储器的4个独立字节访问,来拾取这个复位矢量。可以通过开始根据这个复位矢量地址来访问这个存储器,然后将这个地址增加一个已知量来为随后的字节访问产生随后的地址,来执行4个独立的字节访问。有效地,被用于产生随后地址的增量与其中保存了这个复位矢量的最大比特宽度存储器的、以字节来测量的宽度相等。例如,如果一个32-比特存储器是最大宽度的存储器,这个增量就是4。在这个示例中应注意,任何4的倍数也可以作为增量,但是较大的增量降低了存储器的使用效率。使用最大比特宽度存储器的字节宽度作为这个增量,使这个复位矢量的字节部分尽可能地在各种存储器结构内被隔开。以这样一个方式来拾取这个复位矢量,使一个数据处理系统能够与可能保存组成这个复位矢量的字节的一些不同存储器结构一起进行操作。
在步骤510中,通过在步骤508中被执行的拾取而接收的数据字节被检查。如联系图3所描述的,已经被拾取的这个复位矢量包括一个配置值。这个配置值可能包括一个控制部分和一个数据部分,以使根据这个控制部分,这个数据部分的各种部分可能或者不可能被应用到这个系统的各个参数。所以,被包括在配置值内的某些数据部分可能被无条件地应用,而其它数据部分可能被根据某些条件而应用。
在步骤512中,判断是否需要执行一个条件更新。优选地,这通过检查配置值的控制部分来完成。如果这个控制部分指示,任何条件数据部分需要被应用到其相应的控制参数,这个方法进行到步骤514。如果不需要执行条件更新,这个方法进行到步骤516。
在步骤514中,需要被根据条件应用到其相应的控制参数的数据部分被用于更新这些控制参数。这样,在步骤504中被对这些控制参数而决定的初始化值被包括在这个配置值中的数据部分所覆盖写。在完成步骤514后,这个方法进行到步骤516。
在步骤516中,需要被无条件地应用到其相应的参数的配置值中的那些部分被用于更新这些相应的值。这样,根据初始化状态被保存在这些参数中的前面的值被包括在配置值中无条件应用数据部分中的值所覆盖写。例如,如果这个硬件开始被配置成与一个外部16-比特宽的存储器结构进行交互通信,在步骤508中被拾取的这个复位矢量可能包括重新配置这个特定参数、以反映一个32-比特存储器在被实际使用的一个配置值。
在步骤518中,继续这个复位异常处理器的拾取和执行,其中被继续的拾取和执行利用在步骤514和516中可能被修改的新更新控制参数。所以,在这个系统中、继拾取这个控制值的第一总线访问后的第二总线访问,利用从在第一总线访问器件而拾取的控制值产生的重新配置值。这样,在步骤518中所进行的拾取和执行可能被以一个更有效的方法而执行,如果在步骤504中,被保存在这些控制参数中的标准初始化值被空着。例如,如果这个系统被初始化为一个16-比特外部存储器,并且实际使用了一个32-比特外部存储器,表示这个外部存储器的比特宽度的、对这个参数的修改将使在步骤518中被执行的拾取可以被一个更有效的方法来执行,因为所有的32-比特数据总线将被认为是相关的,而不仅仅是其的一个16比特部分。
参考图2-5所描述的本发明的实施方式已经包括了在被拾取复位矢量中的一个可能配置值。在一个替代的实施方式中,在随后对这个复位矢量进行拾取前,先将配置值作为一个独立的数据部分而拾取。这样,在完成复位状态后,并且执行对这个复位矢量的拾取以前,这个配置值可以被检索,并且被用于改变这个系统内的初始化状态,以使可以使用一个更有效的方法来拾取这个复位矢量和执行其它随后的存储器和其它操作。图6中显示了一个流图,这个流图显示了采用这样一个技术的一个方法。
在步骤602中,判断促使这个处理系统维持在复位状态的复位信号是否已经变负了。当这个复位信号已经变负了时,这个方法进行到步骤604。步骤604与图5的步骤504类似,因为硬件被初始化为预定状态。
在步骤606中,产生一个配置值地址。在步骤608中,这个配置值地址被用于从存储器中检索一个配置值。使用到一个存储装置(存储器结构中的一个)的一个总线访问来检索这个配置值,在这个复位信号变负后,在任何其它总线访问以前,这个存储设备被初始化。对这个配置值的检索可以被系统中的CPU 412所执行,或者被存储器接口416所执行。这个配置值可以包括一个单字节的数据或者多个数据字节,这与需要被从其初始化状态而改变的参数数目有关。在这个配置值包括多个字节的情形下,将采用如在图2和4中所示的用于拾取这个复位矢量的一个类似寻址方法,从而确保这个处理系统能够成功地完成复位,当支持多个不同的可能存储器结构时。
在步骤612中,检查被检索的、组成这个配置值的一个或者多个数据字节。在步骤614中,判断是否有需要被执行的条件更新,其中是根据这个配置值的一个控制部分来进行这个判断的。如果这个控制部分指示需要进行特定的条件更新,这个方法进行到步骤616。如果不需要进行条件更新,这个方法就直接进行到步骤618,而不通过步骤616。
在步骤616中,执行任何需要执行的、对参数的条件更新。在步骤618中,任何无条件的更新,或者与控制部分中任何特定状态无关的更新也被执行。这样,步骤616和618可以配置各种参数,以使它们的状态可以被从其在初始化步骤604中所设置的状态进行改变。这可以通过如图7所显示的,将所检索的至少一部分配置值保存在一个控制寄存器中,来完成它。优选地,在对这个配置值进行初始化检索后的任何条件访问以前,进行这个参数配置。
一旦已经改变了各种参数,来配置这个系统时,这个方法进行到步骤619,其中使用各种参数的新更新值来拾取这个复位异常处理器例程的地址。这样,如果在步骤616和618中被更新的参数包括与一个芯片选择寄存器相应的参数,这个芯片选择寄存器被用于访问保存这个复位异常处理器的地址的一个存储器,就有可能比根据开始初始化设置而进行的方法更有效的一个方法,来执行在步骤619中被执行的拾取。在步骤620中,经过总线周期来检索这个复位异常处理器例程,并且根据在步骤619中所检索的地址来执行这个复位异常处理器例程,总线周期包括存储器读取操作。注意,在步骤620中被执行的拾取和执行也将被利用修改的参数值来执行,这些修改的参数可能包括数据宽度,字节顺序,所需要的等待状态的数目,或者与包括在这个系统中的存储器相应的其它总线定时特性。与使用这些参数的开始初始化值相比,配置这些参数可能使用一个更有效的方式来进行拾取和操作。
在其它实施方式中,根据这个配置值而配置的参数包括与被包括在这个处理系统中的调试或者仿真特征相关的那些参数。这样,在完成复位后,可以立即使能或者关闭调试或者仿真特征,这增强了这种特征的使用。
图7显示了反映使用一个配置值来配置包括在这个数据处理系统中的各种参数的一个框图。这个配置值710被显示为一个独立的值,这个独立的值可以与这个复位矢量不相关,这与图3的配置值310的情形不同。这样,在为这个处理系统拾取这个复位矢量以前,配置值710可以被从存储器中拾取。
与图3的配置值310的情形相同,图7的配置值710可以包括一个数据部分和一个控制部分。如所显示的,图7中这个配置值的数据部分包括数据部分712-718。这些数据部分被用于配置控制寄存器350的各种参数A-C352-356,并且也可以被用于配置在控制寄存器350的外部的其它系统控制参数762。注意,参数A-C可以是参考特定的芯片选择控制寄存器或者与调试或者仿真操作相关的那些控制寄存器而描述的各种参数。这个配置值710的参数控制部分720可以被用于判断是否需要执行对系统中各种参数的特定更新。这样,可以有条件地来执行对各种参数的某些更新,这可以是在配置值710的控制部分的控制下进行。
图8显示了被显示为包括一个处理器810的一个数据处理系统800,这个处理器810被连接到3个不同的可能存储器结构中的一个或者多个。这样,这个处理器810可以被连接到32-比特存储器840,16-比特存储器850,和8-比特存储器860中任何一个。如图4的这个处理器410,这个处理器810包括一个CPU 812,一个接口模块816,和附加的逻辑模块820,这个CPU 812包括一个控制寄存器814,这个接口模块816包括一个控制寄存器818,附加的逻辑模块820包括一个控制寄存器822。如所显示的,这个CPU 812被连接到向这个CPU提供对存储器访问的接口模块816。附加的逻辑820被连接到CPU 812和接口模块816中的一个或者多个。
如参考存储器840,850和860中的每一个所显示的,这个配置信息862被保存在经过各种存储器结构中每一个内的相同地址可以访问的一个位置。更详细地,对所显示的示例,地址0x00可以被用于从各种存储器结构中任何一个检索这个配置信息,其中数据线3124将被使用从所选择的存储器的配置信息所驱动。
优选地,8-比特存储器860的配置信息862包括参数设置,以使接口模块816被配置成识别出,一个8-比特存储器860被包括在这个数据处理系统中。这样,随后对8-比特存储器860所执行的存储器操作被调节成适合于这个存储器的结构。这样,包括这个复位矢量数据字节T,U,V,和W的复位矢量可以被保存在8-比特存储器860的连续存储器地址中,并且这些连续的存储器地址可以被接口模块816所访问。
相反,优选地,16-比特存储器850包括其自己的配置信息852,这个配置信息852告知这个接口模块816,一个16-比特存储器被包括在这个数据处理系统800中。这样,与复位矢量相应的这个数据字节在这个16-比特存储器850中可以被安排成两个16-比特半字,并且这个接口模块816能够使用这个格式检索并且利用这个复位矢量。
当被包括在这个数据处理系统800中时,这个32-比特存储器840也优选地包括其自己的、独特配置信息集合842,这个独特的配置信息集合842包括参数设置,以使这个接口模块816可以识别出32-比特存储器840被包括在这个数据处理系统800中。这样,对32-比特存储器840的一单个字访问可以被用于检索这个复位矢量,以使可以执行这个复位异常例程。注意,通过允许在复位矢量以前来检索配置信息,在检索复位矢量时可以利用包括在这个配置信息内的参数设置,以使可以使用对被包括在数据处理系统中的存储器结构来说最优的一个方法,来执行这样的检索。
在前述说明书中,已经参考特定实施方式来描述了本发明。但是,该领域内的普通技术人员将理解,可以进行各种修改和改变,而不会偏离如下面权利要求书中所提出的本发明的范围。所以,说明书和附图都仅是示例性,而不是限制性的,并且所有这样的修改均被包括在本发明的范围内。
上面,已经参考特定的实施方式描述了有利面,其它优点和对问题的解决方法。但是,有利面,优点,对问题的解决方法,和任何可以促使任何有利面、优点、对问题的解决方法出现或者更强的部件并不被认为是任何一个权利要求或者所有权利要求的一个重要的,需要的,或者必要的特征或者部件。如这里所使用的,术语“包括”,“其特征是”,或者任何对其进行的改变,被认为不具备排斥性的包括,以使包括一个部件列表的一个过程,方法,部件,或者装置不仅仅包括这些部件,而且可能包括没有明确列表出的、或者对这种过程、方法、部件或者装置是固有的其它部件。
权利要求
1.一种用于配置数据处理系统的方法,其特征是包括步骤作为对一个复位信号变负的一个响应,初始化对一个存储设备的一第一总线访问,其中在这个复位信号变负后,在任何其它总线访问以前,第一总线访问被执行;从这个存储设备检索一个配置值;和在执行任何随后的总线访问以前,使用这个配置值来对这个数据处理系统的一个参数进行配置。
2.如权利要求1的方法,其进一步的特征是包括步骤将至少一部分配置值保存在一个控制寄存器中。
3.如权利要求1的方法,其进一步的特征是包括步骤对一第二总线访问进行初始化,其中这个参数在第二总线访问期间被使用。
4.如权利要求3的方法,其进一步的特征是包括步骤在第二总线访问期间,拾取一个复位矢量的至少一部分。
5.用于配置一个数据处理系统的一个方法,其特征是包括步骤从一第一地址检索一个复位矢量的一第一部分;和从不与第一地址相邻的一第二地址,检索这个复位矢量的一第二部分,其中这个复位矢量的第一部分和第二部分之间至少隔开一个比特,其中这至少一个比特没有被用于保存这个复位矢量的任何部分。
6.如权利要求5的方法,其中在一第一总线周期期间,执行检索这个第一部分的所述步骤,在一第二总线周期期间,执行检索这个第二部分的所述步骤。
7.如权利要求5的方法,其进一步的特征是包括步骤在一个数据总线的至少一部分上,传送这个复位矢量的第一部分和第二部分,所述数据总线具有一个数据总线宽度,其中在第一地址和第二地址之间的一个差值是数据总线宽度的函数。
8.如权利要求7的方法,其进一步的特征是包括步骤通过将第一地址增加一个增量值,来产生第二地址,其中这个增量值与这个数据总线宽度的字节数目相等。
9.一个数据处理器,其特征是包括接口电路,在被复位后执行一第一总线周期来检索一个配置值;存储电路,连接到这个接口电路,所述存储电路保存这个配置值;调试/仿真电路,连接到这个存储电路,其中所述调试/仿真电路至少被这个配置值进行部分配置。
10.如权利要求9的数据处理器,其中这个配置值是一个复位矢量的一部分。
全文摘要
当完成复位后,来使用各种比特宽度的存储器(440,450,460)的一个数据处理系统(400)。通过不同的存储器操作,从保存这个复位矢量(300)的存储器中,独立地拾取组成这个复位矢量(300)的字节。这些字节被以一个预定的方式,保存在每一个可能的存储器结构(440,450,460)中,以使预定的地址将在数据总线的相同部分上检索不同的字节。被检索的这个复位矢量(300)的一个配置值(310)部分可以被用于配置这个数据处理系统(400)内的各种参数(352-356,362),以使与这个存储器或者这个系统的其它功能特征相关的参数被初始化。这个配置值(310)可以包括数据和控制部分,以使这个控制部分判断这个配置值(310)的数据部分如何被应用到这个数据处理系统(400)内的各种参数。
文档编号G06F12/06GK1297200SQ00130960
公开日2001年5月30日 申请日期2000年11月22日 优先权日1999年11月23日
发明者威廉·C·莫耶尔, 迈克尔·D·非茨西蒙斯, 詹姆斯·C·纳什 申请人:摩托罗拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1