发明名称 将微程式载入已部份损坏的记忆体晶片之系统及方法
摘要 当可执行之程式码载入记忆体晶片时,在原来的程式码之适当位址插入跳跃指令、或是无用码元。如此一来,当可执行机器码载入该记忆体晶片时,可以自动跳过所有损坏的记忆体单元。在将可执行之机器码载入记忆体晶片前,先检查并记录记忆体晶片中损坏记忆体单元的位址;分析原始码,检查哪些指令将会分配、使用到损坏的记忆体单元;将跳跃指令、或是无用码元插入原程式码之适当位址,使修改后的程式码在载入记忆体空间时,可以自动避开损坏的记忆体单元。本发明适用于将可执行程式码载入可程式(programmable)及可验证(verifiable)记忆体中。适用的记忆体种类包括快闪记忆体(Flash)、电子抹除式可程式唯独记忆体(EEPROM)、可抹除式可程式唯独记忆体(EPROM)、静态随机存取记忆体(SRAM)、及动态随机存取记忆体(DRAM)等。
申请公布号 TW408264 申请公布日期 2000.10.11
申请号 TW087113138 申请日期 1998.08.10
申请人 华邦电子股份有限公司 发明人 林锡聪;杨丁元;吴孟仓
分类号 G06F12/08 主分类号 G06F12/08
代理机构 代理人 王至勤 台北巿大安区敦化南路二段二一八号五楼A区
主权项 1.一种载入程式码的方法,该方法将在一内含正常记忆体单元、并已知至少一损坏记忆体单元位址的记忆体晶片中,执行一预先设定之功能,该方法包括:依据损坏记忆体单元的位址来修改程式码,并使该修改后的程式码可以在程式执行时跳过损坏记忆体单元位址、并执行与原程式相同的功能;根据该修改的程式码以产生一组新的相对应的机器码;将该组机器码载入上述的记忆体晶片中。2.如申请专利范围第1项所述之方法,且该方法是在电脑中执行、并以软体程式的方式来实施。3.如申请专利范围第1项所述之方法,其中步骤(1)更包括:根据损坏记忆体单元所在的位址,在原来的程式码中插入至少一「跳跃」指令,并在该「跳跃」指令后面加上至少一占据位元组用的额外指令,使紧随在这个额外指令后面的指令之相对应机器码可以分配到正常的记忆体单元。4.如申请专利范围第3项所述之方法,其中该「跳跃」指令的形式为「JMP+n」,其中n≧Addr(defectivc)-Addr(jump)+1。5.如申请专利范围第3项所述之方法,其中该「跳跃」指令的形式为「JMP label」,其中label指向损坏记忆体单元位址的后面、正常记忆体单元的位址。6.如申请专利范围第3项所述之方法,其中该额外的指令是「NOP」指令。7.如申请专利范围第1项所述之方法,其中步骤(1)更包括:根据损坏记忆体所在的位址,在原来的程式码中插入没有作用的码元宣告指令,使下一个码元宣告指令所宣告的记忆体空间可以分配到正常的记忆体单元。8.如申请专利范围第1项所述之方法,其中该组相对应的机器码是由修改后的原始码经过编译、链结后而得。9.一种记忆体晶片之程式编辑系统,该系统包括:一测试器,该测试器是用来测试记忆体晶片,以得到该记忆体晶片中至少一损坏记忆体单元的位址,该记忆体晶片内含正常的记忆体单元;一程式载入器,该程式载入器可以依据一特定步骤将一已预先设定好功能的程式码载入上述的记忆体晶片中,该特定步骤包含:(1)依据该损坏记忆体单元的位址来修改该程式码,并得到一修改后的程式码;(2)根据该修改后的程式码以产生一组相对应的机器码;(3)将该组机器码载入该记忆体晶片中,其中该修改后的程式码可以在程式执行时跳过上述的损坏记忆体单元位址、并执行与原程式相同的功能。10.如申请专利范围第9项所述之程式编辑系统,其中步骤(1)更包括:根据该损坏记忆体单元的位址,在原来的程式码中插入至少一「跳跃」指令,并在该「跳跃」指令后加上至少一占据位元组用的额外指令,使紧随在该额外指令后的指令之相对应机器码可以分配到正常的记忆体单元。11.如申请专利范围第10项所述之程式编辑系统,其中该「跳跃」指令的形式为「JMP+n」,其中n≧Addr(defective)-Addr(jump)+1。12.如申请专利范围第10项所述之程式编辑系统,其中该「跳跃」指令的形式为「JMP label」,其中label指向该损坏记忆体单元位址后面、正常的记忆体单元的位址。13.如申请专利范围第10项所述之程式编辑系统,其中该额外的指令是「NOP」指令。14.如申请专利范围第9项所述之程式编辑系统,其中步骤(1)更包括:根据该损坏记忆体所在的位址,在该原来的程式码中插入没有作用的码元宣告指令,使下一个码元宣告指令所宣告的记忆体空间可以分配到正常的记忆体单元。15.如申请专利范围第9项所述之程式编辑系统,其中该组相对应的机器码是由该修改后的原始码经过编译、链结后而得。图式简单说明:第一图说明在习知技术中,原始码的编译、链结、以及载入记忆体系统的方法。第二图简单描述本发明所采用的方法。第三图解释本发明中「程式码修改引擎」如何修改程式码,并将修改后的程式码载入部份损坏的记忆体中。
地址 新竹科学工业区研新三路四号