专利名称:存储器存取系统与其存储器存取方法
技术领域:
本发明涉及一种存储器存取系统,特别是涉及一种用以存取基本输入输出系统程序的存储器存取系统。
背景技术:
图1是用以存取基本输入输出系统(Basic input and output system,BIOS)程序的传统存储器存取系统100的方块图。存储器存取系统100包括一中央处理器110、一周边组件连结接口(Peripheral component interconnect,PCI)从属端120与一电可擦除只读存储器(Electrically Erasable ProgrammableRead-Only Memory,EEPROM)130。存储器存取系统100用以存取电可擦除只读存储器130内的BIOS系统程序。中央处理器110发出一BIOS存取指令,BIOS存取指令对应一预设BIOS地址。此预设BIOS地址是在中央处理器预设的BIOS程序存取地址范围内。例如,当中央处理器为支持32位寻址范围、BIOS程序的大小为512K字节时,预设BIOS地址介于0xFFFFFFFF与0xFFF80000(0xFFFFFFFF减去512K加1)之间。举例来说,当中央处理器110发出预设BIOS地址为0xFFFFFFF0的BIOS存取指令,PCI从属端120解译此BIOS存取指令,以存取电可擦除只读存储器130中,位于预设BIOS地址0xFFFFFFF0的数据。然而,电可擦除存储器的制造成本太高,存取速度太慢。因此,如何节省上述存储器存取系统的成本与增加存取速度,是业界致力的目标。
发明内容
本发明是有关于一种存储器存取系统,以闪存来储存BIOS程序,取代了传统存储器存取系统所使用的电可擦除只读存储器,可节省电可擦除只读存储器的昂贵成本。
根据本发明(的第一方面),提出一种存储器存取系统,用以存取一基本输入输出系统(Basic input and output system,BIOS)程序。本发明的存储器存取系统包括一闪存、一中央处理器、一周边组件连结接口(Peripheralcomponent interconnect,PCI)从属端(Slave)、一地址转换单元与一闪存控制器。闪存用以储存BIOS程序的数个BIOS数据。每个BIOS数据对应一预设BIOS地址。每个BIOS数据位于一闪存型BIOS地址。中央处理器用以发出一BIOS存取指令。BIOS存取指令对应预设BIOS地址的一预设目标地址。PCI从属端用以解译BIOS存取指令。地址转换单元用以接收由PCI从属端传送而来的BIOS存取指令,将预设目标地址,转换为相对应的一闪存型目标地址。闪存型目标地址为闪存型BIOS地址之一。闪存控制器接收由地址转换单元传送而来的BIOS存取指令,并据以存取位于闪存型目标地址的BIOS数据。
根据本发明(的第一方面),提出一种存储器存取方法,用以存取一闪存中的一BIOS程序。BIOS程序包括数个BIOS数据。每个BIOS数据对应一预设BIOS地址。每个BIOS数据位于一闪存型BIOS地址。存储器存取方法包括首先,发出一BIOS存取指令。BIOS存取指令对应预设BIOS地址的一预设目标地址。接着,解译BIOS存取指令。之后,将预设目标地址转换为相对应的一闪存型目标地址。闪存型目标地址为上述闪存型BIOS地址之一。之后,存取位于闪存中,闪存型目标地址的BIOS数据。
为使本发明的上述内容能更明显易懂,下文特举一较佳实施例,并结合附图详细说明如下。
图1是用以存取基本输入输出系统(Basic input and output system,BIOS)程序的传统存储器存取系统100的方块图。
图2示出了依照本发明实施例的存储器存取系统200的方块图。
图3示出了本发明实施例的存储器存取系统所使用的地址映像表的一例。
图4示出了本发明实施例的存储器存取方法。
附图符号说明110、210中央处理器120、220周边组件连结接口(Peripheral component interconnect,PCI)从属端130电可擦除只读存储器(Electrically Erasable Programmable Read-OnlyMemory,EEPROM)230地址转换单元231寄存器240闪存控制器250闪存具体实施方式
请参照图2,其示出了依照本发明实施例的存储器存取系统200的方块图。存储器存取系统200用以存取一基本输入输出系统(Basic input and outputsystem,BIOS)程序。存储器存取系统200包括中央处理器210、周边组件连结接口(Peripheral component interconnect,PCI)从属端(Slave)220、地址转换单元230、闪存控制器240、与闪存250。
闪存250用以储存BIOS程序的数个BIOS数据。每个BIOS数据对应一预设BIOS地址,且每个BIOS数据位于一闪存型BIOS地址。中央处理器210用以发出一BIOS存取指令。BIOS存取指令对应一预设目标地址。预设目标地址为上述预设BIOS地址其中之一。
PCI从属端220用以解译BIOS存取指令。将BIOS存取指令解译为适于地址控制器230的格式。地址转换单元230即接收由PCI从属端220传送而来的BIOS存取指令,将对应BIOS存取指令的预设目标地址,转换为相对应的一闪存型目标地址。闪存型目标地址为闪存型BIOS地址其中之一。
闪存控制器240,接收由地址转换单元240传送而来的BIOS存取指令,并据以存取位于闪存250中,闪存型目标地址的BIOS数据。
在本发明实施例中,BIOS程序的大小是以512千字节(KB)为例。在本发明实施例中,BIOS程序包括4个数据区段B1至B4。每个数据区段的大小为128KB,分别包括部分的BIOS数据。
数据区段B1至B4分别储存于闪存250的4个存储器区块M1至M4。存储器区块M1为闪存250出厂时保证正确的存储器区块。BIOS程序的数据区段B1为BIOS程序的初始执行之处。藉由将数据区段B1储存于闪存250的存储器区块M1,如此一来,即可确保BIOS程序得以正确地开始执行。
在本发明实施例中,中央处理器210是以寻址范围为32位为例。亦即,中央处理器210所发出的BIOS存取指令的预设目标地址即介于0xFFFFFFFFh与0xFFF80000h(0xFFFFFFFFh减去BIOS程序的大小,即512K,再加上1)之间。
在本发明实施例中,数据区段B1中的BIOS数据所对应的预设BIOS地址为0xFFFFFFFFh至0xFFFE0000h。当中央处理器210欲存取数据区段B1中的一BIOS数据时,中央处理器210所发出的BIOS存取指令的预设目标地址介于0xFFFFFFFFh至0xFFFE0000h。
数据区段B1中,对应预设BIOS地址0xFFFFFFFFh至0xFFFE0000h的BIOS数据分别储存于闪存250中闪存型BIOS地址为0x0001FFFFh至0x00000000h的存储器区块M1,即闪存250出厂时保证正确的存储器区块。
举例来说,对于预设BIOS地址为0xFFFFFFF0h的BIOS数据,储存于闪存250中的闪存型BIOS地址0x0001FFF0h。
以中央处理器210发出初始执行BIOS程序的BIOS存取指令为例,说明本发明实施例的存储器存取系统200的存储器存取动作。此BIOS存取指令所对应的预设目标地址例如为预设BIOS地址0xFFFFFFF0h。
中央处理器210发出预设目标地址为0xFFFFFFF0h的BIOS存取指令后,PCI从属端220解译此BIOS存取指令。地址转换器230接收BIOS存取指令后,将预设目标地址0xFFFFFFF0h转换成对应的闪存型目标地址0x0001FFF0h,并传送BIOS存取指令至闪存控制器240。闪存控制器240据以存取位于闪存型目标地址0x0001FFF0h的BIOS数据,将其传回至中央处理器210。
BIOS程序包括一地址映像表。此地址映像表储存于闪存250中,存储器区块M1以外的存储器区块内。此地址映像表记录预设BIOS地址与闪存型BIOS地址的映像关系。地址转换单元230还包括一寄存器231,用以暂存此地址映像表。地址转换单元230将此地址映像表暂存至寄存器231,并依据此地址映像表,将预设目标地址转换为对应的闪存型目标地址。
图3示出了本发明实施例的存储器存取系统所使用的地址映像表的一例。图3的地址映像表300记录数据区段B2、B3、B4的BIOS数据所对应的预设BIOS地址与所位于的闪存型BIOS地址对应关系。例如,数据区段B2的BIOS数据所对应的预设BIOS地址为0xFFFDFFFFh至0xFFFC0000h,分别对应至闪存型BIOS地址0x0003FFFFFh至0x00020000h。亦即,数据区段B2中,对应预设BIOS地址0xFFFDFFFFh至0xFFFC0000h的BIOS数据分别储存于闪存250中存储器区块M2的地址0x0003FFFFFh至0x00020000h。其余数据区段和存储器区块的映像关系均与前述雷同,于此不再赘述。
若BIOS存取指令所对应的预设目标地址,在数据区段B2至B4之一的BIOS数据的预设BIOS地址的范围内,则地址转换单元230参考地址映像表300,得到对应预设目标地址的闪存型目标地址。
举例来说,当地址转换单元230接收预设目标地址为0xFFFDFFFFh的BIOS存取指令,即对应数据区段B2内的BIOS数据的BIOS存取指令,地址转换单元230参考地址映像表300,得到对应的闪存型目标地址为0x0003FFFFh。
用以初始执行BIOS程序的数据区段B1预设地储存于闪存250的存储器区块M1,以确保BIOS程序得以正确地开始执行。因此,在本发明实施例中,地址映像表300并不包括数据区段B1的BIOS数据的预设BIOS地址与闪存型BIOS地址的对应关系。因此,若BIOS存取指令的预设目标地址落于数据区段B1的BIOS数据所对应的预设BIOS地址的范围内,则地址转换单元230直接将此预设目标地址转换为对应的闪存型目标地址,而不需通过地址映像表300来进行地址转换。
现在说明地址转换单元230将地址映像表300暂存于寄存器231的动作。数据区段B1包括一映像表地址,对应地址映像表300。在中央处理器210初始执行BIOS程序的阶段,亦即在存取数据区段B1的BIOS数据的阶段时,地址转换单元230参考此映像表地址,将地址映像表300暂存至寄存器231。如此一来,当中央处理器210发出BIOS存取指令,来存取数据区段B2至B4中的BIOS数据时,地址转换单元230得以依据地址映像表300,将BIOS存取指令的预设目标地址,转换为对应的闪存型目标地址。
由上述可知,在中央处理器210初始执行BIOS程序时,亦即存取数据区段B1中的BIOS数据时,地址转换单元230不需地址映像表300,即可进行地址转换的动作。而在中央处理器210存取数据区段B2至B4内的BIOS数据之前,地址转换单元230即将地址映像表300暂存至寄存器231。如此,之后在存取数据区段B2至B4内的BIOS数据时,地址转换单元230得以依据地址映像表300,顺利进行地址转换的动作。
在本发明实施例中,闪存250以与非门(NAND)闪存为例。一般来说,由于NAND闪存的特性,NAND闪存的每个存储器区块在反复写入十万次后,可能有损坏的可能。在本发明实施例中,闪存控制器230还应用错误校正码(Error correction code,ECC)来检测有无损坏存储器区块。若检测出有损坏存储器区块,闪存控制器240会修正存于此损坏存储器区块内的BIOS数据,并将BIOS数据移至正常的存储器区块,且将此损坏的存储器区块非致能。
此外,闪存控制器240亦对应更新地址映像表300,使得中央处理器210得以正确地存取上述数据区段内的BIOS数据。举例来说,若检测出存储器区块M4为损坏存储器区块,闪存控制器240即修正数据区段B4的BIOS数据,并将数据区段B4的BIOS数据移至其它未使用的存储器区块,例如是另一存储器区块M5。此存储器区块M5的闪存型BIOS地址的范围例如是0x000BFFFFh至0x000A0000h。闪存控制器240将数据区段B4中,对应预设BIOS地址0xFFFDFFFFh至0xFFFC0000h的BIOS数据分别储存于存储器区块M5的闪存型BIOS地址0x000BFFFFh至0x000A0000h。闪存控制器240并对应更改地址映像表300。
类似地,若储存地址映像表300的存储器区块为损坏存储器区块,则闪存控制器240即将地址映像表300移至其它未使用的正常存储器区块。且存储器控制器230并对应更新映像表地址为上述正常存储器区块对应的闪存型BIOS地址。
现在说明本发明实施例的存储器存取系统200的优点。数据区段B1为BIOS程序初始执行之处,为最重要的数据区段。因此将数据区段B1存于闪存出厂时保证正确的存储器区块M1,可确保BIOS程序得以顺地执行。
另外,由于存储器区块M1在重复写入十万次后仍有损坏的可能,因此需降低写入存储器区块M1的次数,以确保存储器区块M1的正确性。在本发明实施例中,由于地址映像表300存于存储器区块B1以外的存储器区块,因此,当有损坏存储器区块,需更新地址映像表300时,仅需写入地址映像表300所在的存储器区块即可,而不会影响存储器区块M1。
对应地址映像表300的映像表地址储存于存储器区块M1。因此,若地址映像表300所在的存储器区块在重复写入十万次后损坏,仅需写入存储器区块M1一次,以更新映像表地址。由上述可知,本发明实施例的存储器存取系统200,将地址映像表300存于存储器区块M1以外的存储器区块,并将对应地址映像表300的映像表地址存于存储器区块M1,可大幅降低存储器区块M1被重复写入的机会。因此,本发明实施例的存储器存取系统的寿命因而大大延长。
本发明实施例中是以数据区段B1至B4分别存于存储器区块M1至M4为例。实际应用上,仅数据区段B1必定存于存储器区块M1,而数据区段B2至B4并不限于存于存储器区块M2至M4中,亦可存于闪存250中其它存储器区块。
本发明实施例中,BIOS程序是以包括4个数据区段,每个数据区段为128 KB为例。实际应用上BIOS程序的大小与所包含的数据区段个数并不限于此。
图4示出了本发明实施例的存储器存取方法,用于上述存储器存取系统200,用以存取闪存250中的BIOS程序。请参考图4。在步骤410中,发出一BIOS存取指令。BIOS存取指令对应一预设目标地址。之后,在步骤420中,解译BIOS存取指令。接着,在步骤430中,将预设目标地址,转换为相对应的一闪存型目标地址。之后,在步骤440中,存取位于闪存250中,闪存型目标地址的BIOS数据。
本发明实施例的存储器存取系统,以闪存来储存BIOS程序,取代了传统存储器存取系统所使用的电可擦除只读存储器,可节省电可擦除只读存储器的昂贵成本。本发明实施例的存储器存取系统,沿用传统所使用的中央处理器,将中央处理器所发出的BIOS存取指令所对应的预设BIOS地址转为闪存型BIOS地址。在不需置换传统所使用的中央处理器之前提下,达成存取闪存内的BIOS程序的功效。因此,本发明实施例的存储器存取系统达到节省成本,并延长产品寿命的效果。
综上所述,虽然本发明已以一较佳实施例披露如上,然其并非用以限定本发明。本发明所属技术领域的技术人员,在不脱离本发明的精神和范围的前提下,可作各种的更动与润饰。因此,本发明的保护范围以本发明的权利要求为准。
权利要求
1.一种存储器存取系统,用以存取一基本输入输出系统程序,所述存储器存取系统包括一闪存,用以储存所述基本输入输出系统程序的多个基本输入输出系统数据,每个所述基本输入输出系统数据对应一预设基本输入输出系统地址,每个所述基本输入输出系统数据位于一闪存型基本输入输出系统地址;一中央处理器,用以发出一基本输入输出系统存取指令,所述基本输入输出系统存取指令对应所述预设基本输入输出系统地址的一预设目标地址;一周边组件连结接口从属端,用以解译所述基本输入输出系统存取指令;一地址转换单元,用以接收由所述周边组件连结接口从属端传送而来的所述基本输入输出系统存取指令,将所述预设目标地址,转换为相对应的一闪存型目标地址,所述闪存型目标地址为所述闪存型基本输入输出系统地址之一;以及一闪存控制器,接收由所述地址转换单元传送而来的所述基本输入输出系统存取指令,并据以存取位于所述闪存型目标地址的基本输入输出系统数据。
2.如权利要求1所述的存储器存取系统,其中,所述基本输入输出系统程序包括多个数据区段,每个所述数据区段包括部分所述基本输入输出系统数据;所述闪存包括多个存储器区块,分别储存所述数据区段;所述数据区段的一第1个数据区段为所述基本输入输出系统程序的初始执行之处,所述存储器区块的一第1个存储器区块为所述闪存出厂时保证正确的存储器区块。
3.如权利要求2所述的存储器存取系统,其中,所述基本输入输出系统程序还包括一地址映像表,所述地址映像表记录所述预设基本输入输出系统地址与所述闪存型基本输入输出系统地址的对应关系,所述地址转换单元还包括一寄存器;其中,所述地址转换单元将所述地址映像表暂存至所述寄存器中,并依据所述地址映像表,将所述预设目标地址转换为所述闪存型目标地址。
4.如权利要求3所述的存储器存取系统,其中,所述地址映像表记录所述存储器区块的一第2至第N个存储器区块中,所述基本输入输出系统数据所对应的所述预设基本输入输出系统地址与所位于的所述闪存型BIOS地址的对应关系,若所述预设目标地址位于所述第2至第N个数据区段之一的所述基本输入输出系统数据的预设基本输入输出系统地址的范围内,则所述地址转换单元依据所述地址映像表,将所述预设目标地址转换为所述闪存型目标地址。
5.如权利要求3所述的存储器存取系统,其中,所述第1个数据区段包括所述地址映像表所对应的一映像表地址,所述地址转换单元由所述第1个存储器区块取得所述映像表地址,并参考所述映像表地址,取得所述地址映像表,并将所述地址映像表暂存至所述映像表寄存器。
6.如权利要求5所述的存储器存取系统,其中,所述闪存控制器还用以检测并校正所述闪存,若存放所述地址映像表的存储器区块为一坏损存储器区块,所述闪存控制器还校正所述地址映像表,并将所述地址映像表存于所述闪存的另一存储器区块,并对应更新所述地址映像表的所述映像表地址。
7.如权利要求3所述的存储器存取系统,所述闪存控制器还用以检测并校正所述闪存,若所述第2至第N个存储器区块之一为一坏损存储器区块,所述闪存控制器校正原本存于所述坏损存储器区块的数据区段,并将其存于所述闪存的另一存储器区块,并对应更新所述地址映像表。
8.一种存储器存取方法,用以存取一闪存中的一基本输入输出系统程序,所述基本输入输出系统程序包括多个基本输入输出系统数据,每个所述基本输入输出系统数据对应一预设基本输入输出系统地址,每个所述基本输入输出系统数据位于一闪存型基本输入输出系统地址,所述存储器存取方法包括发出一基本输入输出系统存取指令,所述基本输入输出系统存取指令对应所述预设基本输入输出系统地址的一预设目标地址;解译所述基本输入输出系统存取指令;将所述预设目标地址,转换为相对应的一闪存型目标地址,所述闪存型目标地址为所述闪存型基本输入输出系统地址之一;存取位于所述闪存中,所述闪存型目标地址的基本输入输出系统数据。
9.如权利要求8所述的存储器存取方法,其中,在所述转换地址的步骤中,依据一地址映像表,将所述预设目标地址,转换为相对应的所述闪存型目标地址;其中,所述地址映像表记录所述预设基本输入输出系统地址与所述闪存型基本输入输出系统地址的对应关系。
10.如权利要求9所述的存储器存取方法,其中,所述基本输入输出系统程序包括多个数据区段,每个所述数据区段包括部分所述基本输入输出系统数据;所述闪存包括多个存储器区块,分别储存所述数据区段;所述数据区段的一第1个数据区段为所述基本输入输出系统程序的初始执行之处,所述存储器区块的一第1个存储器区块为所述闪存出厂时保证正确的存储器区块。
11.如权利要求10所述的存储器存取方法,其中,所述地址映像表记录所述存储器区块的一第2至第N个存储器区块中,所述基本输入输出系统数据所对应的所述预设基本输入输出系统地址与所位于的所述闪存型基本输入输出系统地址的对应关系而在转换地址的步骤中,若所述预设目标地址位于所述第2至第N个数据区段之一的所述基本输入输出系统数据的预设基本输入输出系统地址的范围内,则依据所述地址映像表,将所述预设目标地址转换为所述闪存型目标地址。
全文摘要
一种存储器存取系统,用以存取基本输入输出系统(BIOS)程序,包括闪存、中央处理器、周边组件连结接口(PCI)从属端、地址转换单元与闪存控制器。闪存储存BIOS程序的数个BIOS数据。每个BIOS数据对应一预设BIOS地址。每个BIOS数据位于一闪存型BIOS地址。中央处理器发出BIOS存取指令。BIOS存取指令对应预设BIOS地址其中的一预设目标地址。PCI从属端解译BIOS存取指令后,地址转换单元转换预设目标地址为闪存型目标地址。闪存型目标地址为闪存型BIOS地址之一。闪存控制器据以存取位于闪存型目标地址的BIOS数据。
文档编号G06F13/16GK101021815SQ20071008779
公开日2007年8月22日 申请日期2007年3月19日 优先权日2007年3月19日
发明者钟健平, 陈林鸿 申请人:威盛电子股份有限公司