通过储存在序列存取内存中的激活码的计算机系统起始的制作方法

文档序号:6634983阅读:414来源:国知局
专利名称:通过储存在序列存取内存中的激活码的计算机系统起始的制作方法
技术领域
本发明涉及电子数字计算机技术,尤其涉及为一组激活码储存于序列存取内存的计算机系统。
背景技术
常见的数字计算机系统包括含有激活码指令的非挥发性只读存储器(non-volatile Read Only Memory,ROM)。此激活程序代码乃是于操作系统或应用程控系统前,用以设定系统低阶硬件功能。
系统的中央处理单元(Central Processing Unit,CPU),通常为微控制器或微处理器,设定为跳至ROM内的一预先决定的内存地址,并于系统起始后(包括开启电源或重新激活)开始执行激活码。激活码使操作系统或起始应用程序加载及执行。
激活码ROM一般而言为随机存取内存,其任何地址的指令或数据可直接及独立地存取。此支持大多数程序的分支特性,使得分支后的指令可从内存内的任意地址读取。于供给电源后,这些内存亦很快地便可读取。
相对于随机存取内存,发展的序列存取内存亦具优点及缺点。在序列存取内存,个别地址无法直接使用。内存以页的方式组成,例如以512字节为一页,且为了获得储存于页里任一特定地址的程序代码,必须将整页或半页读出。
可有效地利用于实行本发明的序列存取内存为Am30LV0064DUltraNANDTM,可由Advanced Micro Devices,Inc.(AMD)of Snnyvale,CA取得。此内存乃依据NAND结构的快闪只读存储器装置。
与序列存取非挥发性内存相比,随机存取ROMs需较多的外部接脚及连接,主要做为地址线,故对相同位密度而言,成本明显增加,且无法如同序列存取内存具如此高密度。
另一方面,序列存取内存通常需将指令序列写入装置,以选择及将数据设定为可读取,故无法于供给电源后立即可读取。直至写入新的指令序列后,其才能由内存内的序列位置读取数据,故只能支持直线程序执行。
当计算机系统需使用较高密度及较低成本的非挥发性序列内存时,同时亦需提供非挥发性随机存取内存,至少足以支持起始程序的执行,或称为激活系统。起始程序需于非挥发性ROM执行,直至序列存取内存设定完成而可读取,且序列存取内存内的程序可转移至挥发性随机存取内存(volatile Random Access Memory,RAM)来执行。
如上述,序列存取内存比随机存取内存具较低的成本及较高的储存密度。对于一个采用倾向序列存取内存系统而言,为了降低系统成本及尺寸,最好能消除需使用额外的非挥发性随机存取内存来支持起始程序执行的情形。然而,过去尚无技术能达到此功能。
发明概述如上述,本发明提供一个计算机系统,此计算机系统的起始程序的执行只使用序列存取内存来完成,因此无须额外的非挥发性随机存取内存。
此可由本发明的计算机系统来达成,包括处理器,一个具有激活程序储存其中的序列存取内存,以及一个激活加载器(boot loader)。激活加载器包含状态机,可响应计算机系统的起始,并控制序列存取内存去读取含有激活程序第一部份的序列内存的第一页。于设计激活码第一部份时,需了解序列内存只能由内存传送连续的记忆字符至处理器。激活码第一部份指示处理器将激活码第二部分复制至挥发性RAM。一旦激活码第二部分复制至RAM,激活码第一部份执行一分支(跳跃,jump)指令,将控制权转移至RAM内的激活码第二部分。接着,激活码第二部分便可利用RAM的随机存取特性,得以执行正常程序代码,包括RAM内激活码的跳跃。激活码第二部分便可产生适当指令送至序列内存,而将其它需要的程序代码传送至RAM。
对于此技艺的技术者而言,经由下列详细说明,并参照所附的图式,其中,相同的参考数字对应相同的部分,便可明白本发明的特征及优点。


图1为本发明简化的区块图,用以说明计算机系统;图2为电路图标,用以说明图1的计算机系统的激活加载器及序列存取内存;图3为激活加载器的接脚图标;图4为用以说明本发明方法的流程图;图5为激活加载器的状态机的状态图标;图6为本系统的时间安排图标;图7为激活加载器及序列存取内存较详细的电路图标;以及图8为简化的区块图标,用以说明将激活加载器及序列存取内存置于单一集成电路。
具体实施例方式
图1所示为本发明的计算机系统10,其中包含主机板12。处理器或中央处理单元(Central Processing Unit,CPU)14,或称为微控制器或微处理器,挥发性随机存取内存(volatile Random Access Memory)16,以及电源供应器18,依常见操作方式配置于主机板12。输入/输出(Input/Output,I/O)单元20提供主机板12至典型I/O装置,如显示监视器22,键盘24,以及一个或多个磁盘驱动器26间的连接。这些组件经由信号总线、电源线、连接插头等连接,共同地显示于28。
依照本发明,系统10还包含电源良好或重新激活信号产生器30,于电源供应器18激活且操作电压达到适当程度后,其产生一PWRGOOD(或RESET)信号。系统10更包含序列存取内存32及激活加载器34。
内存32最好采用UltraNANDTM内存,可由Advanced Micro Devices(AMD)of Sunnyvale,CA.取得。此范例所显示的内存32为根据NAND结构的Am30LV0064D UltraNANDTM快闪电子可拭除式可程序只读存储器(FlashElectrically Erasable Programmable Read Only Memory,EEPROM)装置,并可储存64兆位数据。数据储存于16,384内存页里,每页含有512字节的正常数据及16字节的备用数据。依照本发明,内存32由其最低的内存页开始储存激活码指令,并于计算机系统10起始后(开启电源或重新激活)开始执行。且无使用非挥发性RAM作为此用途。
图2所示为激活加载器34及内存32,且激活加载器34的接脚图标显示于图3。激活加载器34最好采用AmPALLV16V8-10SC可程序逻辑装置(Programmable Logic Device,PLD),可由Vantis Corporation ofSunnyvale,CA取得。内存32及激活加载器34的详细结构及操作将于下列说明的。
图4为流程图,用以说明本发明以系统10执行激活带(bootstrap)加载方法。于起始后,激活加载器34抑制处理机14,从而防止其尝试执行指令。激活加载器34侦测到PWRGOOD信号后,且PWRGOOD信号显示电源供应器18产生适当操作电压时,将变为激活。
激活加载器34具内部状态机,且置入程序化逻辑于其中。于能够读取数据前,内存32需设定指令写入其中。激活加载器34的状态机产生这些设定指令并写入内存32。首先,单元34写入读取指令至内存32的指令闩。接着激活加载器34写入地址至内存32的地址闩。
此范例乃使用无间隔-读取(Gapless-read)指令。无间隔-读取指令为UltraNAND内存32的超集指令,可使连续地输出多路的内存页。亦可使用正常读取指令,其一次可读取一页,且当每页加载至528位输出数据输入器(output data register)时,具有7微秒等待时间。无间隔-读取指令消除了页与页之间的等待时间,而只有当第一页加载时有一个7微秒等待时间。如此,不需再送任何读取指令至内存,激活码即可延伸至多路的内存页。激活加载器34加载至内存32地址闩的地址,为内存32的第一页的地址。然而,于本发明范畴内,正常读取指令可取代使用。
于下一步,UltraNAND内存32由其内部结构读取激活码的第一页至其输出数据输入器,并藉由设定其准备好/忙碌(RY/BY#)信号至准备好(Ready)状态,来指示此页读取操作的完成。接着激活加载器34的状态机藉由将INIT#改为无效,以激活处理器14,使其继续执行指令。处理器14含有常见的状态机或硬微码(hard microcode),使其跳至预先决定,处理器可读取到系统的激活码的地址。系统会译解此地址以便选择内存32。接着处理器会开始由内存32的输出数据输入器内的内存页读取并执行激活码指令。
注意处理器会接受来自内存激活码指令的任何数据。处理器所显示的激活码地址将为内存所忽略。此意谓相同的第一内存页可用于任何处理器,无论处理器使用低或高数值地址来选择激活码。然而,激活码必须知道处理器用以选择激活码的地址。在处理器使用高内存地址做为激活码第一字符的情形下,激活码必须包含跳跃指令,使得处理器的地址改变至较低地址。此地址仍须位于系统所译解,用以选择内存32的地址范围内。若无跳跃指令,处理器会增加其地址,至某一点后,会回复至不再选择激活内存32的低内存地址。所用的实际地址并不要紧,因UltraNAND装置仅会传送和地址总线无关的连续指令流。然而,跳跃终点地址必须远低于内存顶端,以使地址维持于内存32地址空间,直至激活码第一部份跳至复制至RAM的激活码第二部分。
激活码亦需知道处理器如何读取指令。许多处理器具有指令读取状态机,于处理器的指令执行状态机实际使用指令前,会读取指令至缓冲器。此通常称为指令的预先读取(prefetching)。当执行跳跃指令时,将忽略预先读取指令。当跳跃指令由下一个将执行的指令改变地址时,任何预先读取,且置于预先读取换冲器的指令,将不执行。此点很重要,因序列存取内存会忽略处理器地址。每当内存读取完成时,序列地址内存只由内存传送下一指令。因指令预先读取状态机于跳跃指令执行且清除预先读取缓冲器前,可由内存取得数个指令,激活码必须知道内存中有多少字符会为跳跃指令所摒弃。下一个需于跳跃之后执行的指令,不可在跳跃指令之后,会在由预先读取缓冲器被清除的范围内。若无法精确预测必须跳过多少字符,则在跳跃指令后,激活码需含有足够的不操作(No-operation,NOP)指令,以确保不会摒弃跳跃后的指令。直到下一个有效指令送达激活码前,皆可安全地执行跳跃后的任何NOP指令。所读取以及稍后由预先读取缓冲器所清除的NOP指令数目,并不会影响或干扰剩余激活码的执行。
处理完上述有关指令地址读取的调整后,下一步乃是将激活码第二部分复制至RAM。激活码的下一指令最好为“字符串复制”(stringcopy)操作,使得内存32中一连串紧接的字符复制至原处执行(Executein Place,XIP)挥发性随机存取内存。这些指令为和激活码第一部份相连的激活码第二部分。XIP内存可为RAM 16,快取缓冲储存区,或是处理器14里的其它内存。
再者,因有些处理器会执行指令预先读取,故也许需在字符串读取指令及激活码第二部分起点间插入NOP指令。此在于确保,字符串复制开始由内存读取字符前,激活码的第二部分不会读取至预先读取缓冲器。也许无法预测已经在预先读取缓冲器内的字符,和最先由字符串复制指令所复制的字符,两者的起始分界。因此,欲复制的字符串末端必须接着额外的NOP指令,且复制的长度需确保会复制所有激活码的第二部分。故所复制的字符串也许会包含一些NOP指令的起点或末端。NOP指令不会影响激活码第一或第二部分所执行的操作。然而,他们使已执行的指令及已复制的字符串间的分界更有弹性。
因无法得知字符串复制里程序代码的确切校正,故须使用已加载至XIP内存里,部分激活带程序内的相对分支。
为集合XIP内存里的激活码第二部分,亦可使用一连串的立即移动(move immediate)指令。如此可对程序代码校正有较多的控制。然而,此举将使程序代码变大且更难设计,因程序代码第二部分需由指令流转换至立即移动指令流,而其欲移动的数据为激活码第二部分的映像。
激活码第二部分储存至XIP内存后,由内存32执行的激活码第一部份的最后一个指令,使处理器14跳至XIP内存里的一个地址。接着,处理器开始执行由内存32复制而来的激活码第二部分。此为激活带过程,可分为几个阶段。第一阶段为由序列存取内存32执行的激活码。下一阶段以及其后的任意阶段为起始码的额外区块,这些区块由内存32复制至XIP内存,接着跳至此执行。虽然并未明确阐明,激活带过程亦会继续由硬盘加载及激活操作系统,或是一个或多个应用程序。
状态机及激活加载器34相关功能最好能够和序列存取内存置于单一集成电路40,如图8所示的32’及34’。此部分,例如,可藉由增加足够的逻辑电路至序列存取内存来执行所需的激活加载器功能而达成。此实施例,和序列内存需结合一小部份随机存取内存的方式相比,较为简单且需少装置的修改。此乃因状态机不需任何额外处理步骤或额外地址接脚。UltraNAND或其它序列存取内存仍可和其它相似种类的内存的接脚兼容。
下列为本发明的详细功能说明概要UltraNAND生产线乃Advanced Micor Devices,Inc.(AMD)为满足高密度非挥发性内存需求所发展。应用对象包括于固定或可移动媒体系统的程序代码及数据储存。以下为激活加载器PLD和UltraNAND内存共同使用的详细说明。
使用微控制器系统通常具可程序输入/输出接脚(ProgrammableInput/Output,PIO),可用于直接提供UltraNAND控制信号。若无这些PIO接脚,则必须具额外的逻辑接口,以做为处理器,激活加载器,以及序列内存间的适当连接。激活加载器PLD可设计置于单一AmPALLV16V8-10SC芯片,其目的在于支持于激活电源后,需直接由UltraNAND装置激活的激活码储存应用。
ULTRANAND程序代码储存的相关优点UltraNAND设计为和在市面已可取得的NAND结构闪存,不论在硬件或软件均可完全兼容。然而,UltraNAND为一改进产品,可提供100,000次写入程序/清除,而不需错误修正电路(Error CorrectionCircuits,ECC)。UltranNAND亦具有100%良好区块,而无须损坏区块检测。
每位成本较低(低于NOR Flash),不需ECC即可增加写入程序/清除次数,且具有100%的良好装置,使得UltraNAND为理想的程序代码储存应用。尤其是系统码储存于UltraNAND闪存,并转移或投影至高速内存资源,例如同步动态随机存取内存(synchronous DRAM),以作为快速随机存取或执行。
激活加载器PLD对于需要直接由UltraNAND激活的程序代码储存应用,UltraNAND起始需有某种的激活加载器。此乃因激活电源后,UltraNAND数据输入器并无有效数据。本激活加载器PLD 34隔绝处理器和总线间连接,并提供激活所需的控制信号序列,最高可激活两个UltraNAND快闪装置。
起始过程释出AMD超集无间隔读取指令(02h)(AMD supersetGapless Read command(02h))至每个UltraNAND装置,以预先加载含有激活码的第一闪存页至内部UltraNAND数据输入器。此可使系统的微控制器或处理器14于激活电源后,由内存32读取并执行序列系统激活码。对程序储存应用而言,系统的微控制器可由UltraNAND装置32激活,接着将储存于UltraNAND内的程序代码剩余部分转移至RAM,以执行程序代码。因程序代码可由RAM执行,故称的为原处执行(Execute-in-Place,XIP)内存。
激活存取的ULTRANAND接口需求UltraNAND内存32采用多路传输地址/数据总线。所有指令、地址、以及数据经由I/O
(八位I/O端口)传入或传出装置。装置所提供的控制信号有CE#(芯片激活,Chip Enable)、CLE(指令闩激活,Command Latch Enable)、ALE(地址闩激活,Address Latch Enable)、WE#(写入激活,Write Enable)、SE#(备用区域激活,Spare Area Enable)、以及WP#(写入保护,Write Protect)。此外亦有开启汲极RY/BY#(准备好/忙碌,Ready/Busy)输出接脚,用于指示何时装置正在忙于内部操作。
使用UltraNAND的系统应用必须产生适当控制信号给装置,而这些装置,在很多情形下并未被其它系统资源所使用。此处所述的激活加载器PLD 34,提供装置起始时,UltraNAND内存32所需的全部独特信号。
为了将UltraNAND装置内所含的一页数据转移至内部数据输入器,需执行指令及地址序列。于指令及地址输入之后,UltraNAND装置会于7微秒的读取等待时间周期内(最坏情形),将数据由适当的快闪页转移至数据输入器,且在此时装置会显示忙碌。一旦非挥发性页的数据成功地转移至数据输入器,UltraNAND装置会预备好,且系统可连续地以最快每字节50奈秒的速度,由快闪装置32读取有效数据。
系统接口说明于此范例,激活加载器PLD单元34支持单一UltraNAND装置32。于激活加载过程中,激活加载器PLD暂时变为由UltraNAND快闪所需的正常系统控制信号来源。激活加载器PLD接着便可产生UltraNAND起始所需的信号序列。
电源良好信号产生器30提供PWRGOOD输入信号至激活加载器PLD 34,其仍维持在低点,直至Vcc有效。当PWRGOOD由无效状态(低点,low)过渡至有效状态(高点,high),激活加载器PLD 34侦测到此过渡并起始UltraNAND装置32。
于某些无PWRGOOD信号的应用,可使用系统RESET#信号。激活加载器PLD所产生的INIT#(起始)信号,乃用于指示激活加载器PLD34正忙于起始UltraNAND装置32。系统10必须监控INIT#信号,并隔绝系统微控制器14和总线间的连接,直至INIT#变为无效(高点)。一旦INIT#指示UltraNAND激活过程已完成,系统10便可允许微控制器14由UltraNAND装置读取数据。
许多情形下,INIT#信号可作为系统10其它部分的重新激活信号。正常系统RESET#信号只到达激活加载器PLD 34,且激活加载器使用INIT#信号使系统10的其余部分维持在重新激活状态,直到UltraNAND装置32可开始读取为止。
于激活加载器过程的地址阶段,直到装置变为忙碌状态前,地址字节会写入UltraNAND。如此可使激活加载器34支持需三个或以上地址脉冲的装置。于激活加载器起始过程后,激活加载器会三态(tri-state)WE#、CLE、ALE、及I/O1,并将CE0#及CE1#由系统总线28传至UltraNAND装置。
激活加载器信号说明UltraNAND激活加载器34利用无间隔读取指令序列产生起始一或二个UltraNAND装置所需的所有信号。PLD 34内的简易状态机控制INIT#、WE#、CLE、ALE、及I/O1,藉此控制UltraNAND的起始。为了启始激活加载器PLD,系统需提供SYSCLK(系统时间,SystemClock)及PWRGOOD(电源良好指示)。所有适用信号的定义用于产生信号的来源均列于下表。激活加载器起始顺序的时间图标表示于图6。

激活加载器PLD操作原理此节将说明激活加载器PLD 34的设计及操作。激活加载器PLD 34使用flip-flops作为状态机及I_01。组合逻辑用于产生控制最高为两个UltraNAND 32装置的其它所有信号。本节所指定的装置参考指示显示于图7,其为“支持两个UltraNAND装置的典型激活加载器应用”的图例。
输出信号产生INIT#为一组合输出信号,用于通知系统激活加载器PLD 34正处于起始UltraNAND 32数组状态。当INIT#激活,系统10必须维持三态系统信号(如地址线或PIO接脚),这些信号使用于正常系统操作,用以驱动UltraNAND CLE、ALE、WE#、及I/O
信号。许多情形下,INIT#信号可作为至其它系统组件的重新激活信号,因重新激活状态通常会使处理器输出维持在三态状态。
于INIT#时期,PLD 34将指令及地址数据送至UltraNAND 32数据总线,并控制UltraNAND起始所需的CLE、ALE、及WE#。于指令阶段,CLE激活,且I_01用于将02h值送至UltraNAND 32数据总线,以将无间隔读取指令写入UltraNAND 32。于地址阶段,CLE关闭,ALE激活,将00h值送至UltraNAND 32数据总线。
藉此激活加载器PLD 34可将区块0,页0,字节0的地址加载至UltraNAND 32装置,使系统于起始后由第一字节开始读取。于INIT#,不管芯片激活输入的状态为何,PLD 32会激活输出芯片激活。此可使激活加载器PLD 34于激活加载器操作时,同时起始最高可达两个的UltraNAND 32装置。
I_01为三态登录输出,于激活加载器PLD 34起始阶段时,用以将无间隔读取指令写入UltraNAND 32装置。当INIT#激活时,系统需将UltraNAND 32数据总线,I/O
维持在三态。当下拉电阻R4使其它所有数据位维持在低点,I_01便可于指令阶段变为高点,并将02hop-code写入至UltraNAND 32。于地址阶段,I_01处于低点,使得所有地址周期将00h值写入UltraNAND 32地址登录器。OUTCE
#为激活UltraNAND 32装置所需的两个芯片激活输出。
于激活加载器运作的INIT#时期,芯片激活必须强迫激活。一旦INIT#变为关闭(高点),芯片激活输出乃由芯片激活输入所决定。ST
为四个三态登录状态位,用于定义状态机状态,最高可至16个状态,其中9个状态为实际使用的。于INIT#激活时期,亦激活这些位,当INIT#关闭时,则处于三态。
其中三个状态位用于定义WE#(ST0)、CLE(ST1)、及ALE(ST2)。激活加载器PLD 34内的状态机为典型米力(Mealy)机,其中PLD输出乃依据电流状态及输入条件。AmPALLV16V8-10SC装置34激活时,所有登录输出位于高点状态。因此,状态机定义IDLE状态为所有均为输出条件。
状态01至状态09为灰阶编码变化(gray coded variations),以消除组合输出的噪声脉冲,并避免不同步输入所导致的竞争情形。状态机的流程图显示于图5。
ST0,如同WE#,乃是于起始时,用于将数据写入UltraNAND 32快闪。于起始时期,系统必须使系统WE#输入至UltraNAND 32维持三态。一旦起始完成,激活加载器PLD 34会三态其WE#输出,接着系统10需要时便可驱动WE#。
ST1,如同CLE,乃于起始时,用于激活写入至UltraNAND快闪Flash 32的指令。于起始时期,系统必须使系统CLE输入至UltraNAND 32维持三态。一旦起始完成,激活加载器PLD 34会三态其CLE输出,接着系统10需要时便可驱动CLE。
ST2,如同ALE,乃于起始时,用于激活写入至UltraNAND快闪Flash 32的地址。于起始阶段,系统必须使系统ALE输入至UltraNAND32维持三态。一旦起始完成,激活加载器PLD 34会三态其ALE输出,接着系统10需要时便可驱动ALE。
其它信号CE
#乃由系统10所产生的两个芯片激活输入信号,用以选择UltraNAND 32装置。于起始过程,CE
#输入被激活加载器PLD 34所忽略,且OUTCE
#激活,以选择所用的UltraNAND 32装置。一旦起始完成,激活加载器PLD 34只将系统10的CE
#信号经由OUTCE
#输出,传至UltraNAND 32装置。
PWRGOOD为系统所产生的信号,用以指示激活加载器PLD 34何时该起始UltraNAND 32快闪装置。激活电源时,PWRGOOD维持在无效(低点),直至Vcc有效。激活加载器PLD 34供给电源后,状态机变为IDLE状态,直到PWRGOOD变为激活(高点)才解除。一旦激活加载器PLD 34侦测到PWRGOOD由低点到高点的变化,激活加载器PLD 34便会继续起始UltraNAND闪存32。
若系统无PWRGOOD信号,系统的RESET#信号亦可执行相同功能。当RESET#变为激活(低点)以重新激活系统时,激活加载器的状态机会进入IDLE状态。当RESET#关闭时(高点),激活加载器便会起始UltraNAND 32装置。
RY/BY#乃由UltraNAND 32装置所产生,用以指示何时装置正忙于内部操作。系统10亦可使用RY/BY#硬件信号,或读取状态登录机内的RY/BY#状态位,以决定何时操作正在进行,或是已经完成。激活加载器PLD 34经由READY输入,监控RT/BY#信号,以决定何时UltraNAND快闪32已完成将数据由内部快闪数组转移至内部数据输入器。于此时,起始内存32,且控制权可转移至系统10。
SYSCLK为激活加载器PLD 34所需,用以驱动装置状态机。因UltraNAND 32具有最小写入脉冲宽度规格25奈秒,SYSCLK的最大频率为40兆赫。
激活加载器状态机激活加载器PLD 34中具有简易的状态机,用以执行UltraNAN起始。激活加载器状态机驱动激活加载器PLD 34输出,以提供用于起始一个或两个UltraNAND 32装置时所需的适当信号。激活加载器PLD状态机的流程图示于图5。
实行细节如此处所述的激活加载器PLD,于激活电源后,PLD最高可起始两个UltraNAND装置。当使用激活加载器PLD时,一些基本系统接口考量亦需考虑。
CLE、ALE、WE#、及I/O
的三态控制于激活电源后,当激活加载器PLD正在起始UltraNAND快闪时,激活加载器过程必须必须控制I/O
、CLE、ALE、以及系统WE#信号。因此,当INIT#有效时(低点)系统必须使这些信号处于三态状态。一旦INIT#变为高点,表示激活加载器起始已经完成,系统接着便可适当地驱动这些信号。
序列激活码范例因系统位置总线并非直接决定UltraNAND快闪读取地址,故顶端或底端激活微控制器不需不同的PLD。系统的地址译码器逻辑仅需保证当激活电源及快闪起始后,UltraNAND可开始让微控制器读取程序代码。以下的范例为在x86等级微控制器中,系统激活码如何储存于UltraNAND快闪激活区域。
一旦起始UltraNAND,系统微控制器便可连续地直接由UltraNAND数据输入器开始读取程序代码。
如果系统里的处理器使用低内存地址作为激活码的起点,储存于快闪装置的激活码不会使微控制器来回分支或跳跃。此举可确保,由任何处理器的指令预先读取逻辑自UltraNAND所读取的指令,以及实际指令执行顺序,彼此之间没有中断。
如果处理器使用高内存地址作为激活码的第一字符,程序代码必须包含跳跃指令,使得处理器的地址变为较低的地址,但仍须位于系统所译解,用以选择内存32的地址范围内。若无跳跃指令,处理器会增加其地址,至某一点后,会回复至不再选择激活内存32的低内存地址。
当预先读取缓冲器被跳跃所清除时,跳跃会使一些由预先读取的指令流所得的字节被摒弃。因无法得知预先读取缓冲器里有多少数目的字节会被跳跃所摒弃,故于跳跃填满整个预先读取缓冲器后,需有足够的NOP指令。
最先直接由UltraNAND装置所执行的激活码仅由UltraNAND装置加载较为广泛的激活带程序至XIP内存资源,如静态随机存储器(SRAM)或动态随机存取内存(DRAM)。加载激活带程序代码可藉由字符串移动或连续立即移动指令来完成。
若使用字符串移动,字符串指令后的指令流于起点及末端必须具足够的NOP指令,以填满处理器所使用的指令预先读取缓冲器。此举可确保由字符串移动读取操作所取得的程序代码流,由预先读取缓冲器填满后的位置开始。因无法预测预先读取缓冲器停止由UltraNAND读取字节的确切位置,以及字符串移动操作开始读取字节的位置,故加载至XIP内存资源的程序代码或许会开始于一些余留的NOP指令。
因无法控制程序码的确切校正,故须使用已加载至XIP内存里,部分激活带程序内的相对分支。对需要严格控制程序码字节校正的处理器而言,立即移动指令流或许为较好的方式来加载激活带程序代码至XIP内存。
一旦激活码于XIP内存组集合之后,最后一个指令会使微控制器跳至激活码执行。下列的范例包含以组合程序代码形式的x86激活码序列,其将会于起始后,由Ultra NAND连续地执行。
定义

程序代码范例

总结上述,本发明提供一组只使用序列存取内存,便完成起始程序执行的计算机系统,因此,不需独立的非挥发性随机存取内存。
对于此技艺的技术者而言,于了解本揭示之后,只要不背离本发明的范畴,便可做不同的修改。
权利要求
1.一种计算机系统,包含一个处理器;一个用于储存激活程序的序列存取内存;以及一个激活加载器,用以控制序列存取内存,以读取激活程序,并控制该处理器,以便执行该序列存取内存里的激活程序,响应计算机系统的起始。
2.如权利要求1所述的计算机系统,其中,该激活加载器配置为可输入读取指令及地址至序列存取内存,接着控制该序列存取内存执行读取指令。
3.如权利要求2所述的计算机系统,其中序列存取内存配置为储存激活程序于至少一个内存页;以及读取指令使读取内存第一页。
4.如权利要求3所述的计算机系统,其中,该读取指令为无间隔读取指令。
5.如权利要求1所述的计算机系统,其中该激活加载器配置为可抑制处理器,直至序列存取内存使部份激活程序可读取,并致能处理器;以及致能该处理器后,由该序列存取内存读取及执行激活程序。
6.如权利要求1所述的计算机系统,其中,该激活加载器配置为于计算机系统起始后会被激活。
7.如权利要求1所述的计算机系统,其中,该激活加载器包含可程序逻辑装置。
8.如权利要求1所述的计算机系统,其中,该激活加载器包含状态机。
9.如权利要求8所述的计算机系统,其中,该激活加载器包含可程序逻辑装置,且状态机置于其中。
10.如权利要求8所述的计算机系统,其中,该状态机配置为可输入读取指令及地址至序列存取内存,接着控制该序列存取内存执行读取指令。
11.如权利要求1所述的计算机系统,其中,该激活程序配置为可控制处理器将激活码由序列存取内存转移至挥发性随机存取内存(RAM),接着跳至随机存取内存(RAM)里的激活码。
12.如权利要求11所述的计算机系统,其中,该随机存取内存(RAM)包含在处理器里的快速缓冲贮存内存。
13.如权利要求11所述的计算机系统,其中,该随机存取内存(RAM)包含与该处理器分离的原处执行内存(Execute-inPlace,XIP)。
14.如权利要求1所述的计算机系统,其中,该序列存取内存及激活加载器置于单一集成电路中。
15.如权利要求1所述的计算机系统,其中,该激活程序配置为可预测处理器的程序地址逻辑行为,以使处理器地址保持在选择序列存取内存的地址范围内。
16.如权利要求1所述的计算机系统,其中,该激活程序配置为可预测任何程序代码预先读取逻辑的行为,并确保必要的指令绝不会为预先读取逻辑所预先读取及摒弃。
17.如权利要求1所述的计算机系统,其中,该激活程序配置为包含不操作(No-operation,NOP)指令,以作为程序代码区块间的填料,此处,程序代码流会因预先读取缓冲器逻辑造成中断。
18.如权利要求1所述的计算机系统,其中该激活程序配置为控制处理器由序列存取内存将激活码转移至挥发性随机存取内存(volatileRandomMemory),接着跳至随机存取内存里的激活码;以及激活程序更进一步配置为,随机存取内存(RAM)里的激活码内的分支为相对的。
19.如权利要求1所述的计算机系统,其中,该激活程序配置为控制处理器,使用立即移动指令,由序列存取内存将激活码转移至挥发性随机存取内存,接着跳至随机存取内存里的激活码。
20.一种用于计算机系统起始程序执行的方法,其中,包含处理器及序列存取内存,所包括的步骤有(a)储存激活程序于序列存取内存;(b)提供激活加载器,用以控制序列存取内存,使读取激活程序,并控制处理器,以便响应计算机系统的起始,跳至序列存取内存里的激活程序;以及(c)起始计算机系统。
21.如权利要求20所述的方法,其中,步骤(b)包含配置激活加载器,使输入读取指令以及地址至序列存取内存,接着控制该序列存取内存执行读取指令。
22.如权利要求21所述的方法,其中;步骤(a)包含配置序列存取内存,以储存激活程序于至少一内存页;以及步骤(b)包含配置激活加载器,使得读取指令能使读取第一内存页。
23.如权利要求22所述的方法,其中,该读取指令为无间隔读取指令。
24.如权利要求20所述的方法,其中;步骤(b)包含配置激活加载器,以抑制处理器,直到序列存取内存至少读取部份的激活程序,接着致能处理器;以及致能处理器后,执行序列存取内存里的激活程序。
25.如权利要求20所述的方法,其中,步骤(b)包含配置激活加载器于计算机系统起始后被激活。
26.如权利要求20所述的方法,其中,步骤(b)包含配置激活加载器,此激活加载器包含可程序逻辑装置。
27.如权利要求20所述的方法,其中,步骤(b)包含配置激活加载器,此激活加载器包含状态机。
28.如权利要求27所述的方法,其中,步骤(b)包含配置激活加载器,此激活加载器包含可程序逻辑装置,且状态机置于其中。
29.如权利要求27所述的方法,其中,该状态机配置为输入读取指令以及地址至序列存取内存,接着控制序列存取内存执行读取指令。
30.如权利要求20所述的方法,更进一步包含有步骤(d)设有挥发性随机存取内存,其中步骤(a)包含配置激活程序,以控制处理器以将激活码由序列存取内存转移至随机存取内存(RAM),接着跳至随机存取内存里的激活码。
31.如权利要求30所述的方法,其中,步骤(d)包含设有随机存取内存,此随机存取内存包含处理器里的快速缓冲贮存内存。
32.如权利要求30所述的方法,其中,步骤(d)包含设有随机存取内存,此随机存取内存包含和处理器分离的原处执行内存(Execute-in-Place,XIP)。
33.如权利要求20所述的方法,其中,步骤(b)包含将激活加载器及序列存取内存置于单一集成电路。
34.如权利要求20所述的方法,其中,步骤(a)包含配置激活程序,使能预测处理器的程序地址逻辑行为,以便使处理器地址保持在选择序列存取内存的地址范围内。
35.如权利要求20所述的方法,其中,步骤(a)包含配置激活程序,使能预测任何程序代码预先读取逻辑的行为,并确保必要的指令绝不会被预先读取逻辑所预先读取及摒弃。
36.如权利要求20所述的方法,其中,步骤(a)包含配置激活程序,使包含不操作(No-operation,NOP)指令,以作为程序代码区块间的填料,此处,程序代码流会因预先读取缓冲器逻辑造成中断。
37.如权利要求20所述的方法,其中步骤(a)包含配置激活程序,以控制处理器由序列存取内存将激活码转移至挥发性随机存取内存,接着跳至随机存取内存里的激活码;以及步骤(a)更进一步包含配置激活程序,使随机存取内存里的激活码内的分支为相对的。
38.如权利要求20所述的方法,其中,步骤(a)包含配置激活程序,以控制处理器使用立即移动指令,由序列存取内存将激活码转移至挥发性随机存取内存,接着跳至随机存取内存里的激活码。
全文摘要
本发明提供一种计算机系统,包含处理器,以及具有激活程序储存于其中的序列存取内存。激活加载器包含状态机,可响应计算机系统的起始,并控制序列存取内存,以读取激活程序,接着控制处理器,使跳至序列内存的激活程序。激活程序的第一内存页更进一步使激活码转移至随机存取内存(RAM)。处理器接着跳至RAM里的程序代码,使得剩余的激活码由序列存取内存转移至RAM并执行。
文档编号G06F9/445GK1556950SQ00818342
公开日2004年12月22日 申请日期2000年12月15日 优先权日2000年1月14日
发明者瑞夫·E·吉普森, 罗南·J·雪林斯基, 马克·A·麦克林, A 麦克林, J 雪林斯基, 瑞夫 E 吉普森 申请人:先进微装置公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1