发明名称 局部缺陷记忆体的处理方法和系统
摘要 一种局部缺陷记忆体的处理方法,可以适用在包含一缺陷记忆单元的记忆体和待载入此记忆体的原始程式码之间。首先,扫描此原始程式码,并且在缺陷记忆单元所对应的缺陷位址前后,决定出第一分断点和第二分断点。接着移动第一分断点和第二分断点之间的区段程式码到程式码之不对应缺陷位址的第一位址和第二位址之间。接着,连接移动后之区段程式码与原始程式码中未移动部分的执行顺序,并且调整移动后的区段程式码与原始程式码中未移动部分之间或是区段程式码本身的参考位址。最后,便可以将更改过之程式(含原始程式码中未移动部分、连接指令以及移动后的区段程式码)载入至记忆体中。因此,所载入的更改过之程式码在执行时,可以避开缺陷记忆单元且不影响原程式码之执行功能。
申请公布号 TW449685 申请公布日期 2001.08.11
申请号 TW088122503 申请日期 1999.12.21
申请人 华邦电子股份有限公司 发明人 林锡聪
分类号 G06F11/00;G06F12/00;G06F9/445 主分类号 G06F11/00
代理机构 代理人 洪澄文 台北巿信义路四段二七九号三楼
主权项 1.一种将程式码载入记忆体以供执行的处理方法, 适用于包含复数记忆单元之一记忆体和待载入于 上述记忆体之一原始程式码,其包括下列步骤: 决定上述记忆体是否包含缺陷记忆单元; 当上述记忆体不包含缺陷记忆单元时,则载入上述 原始程式码至上述记忆体; 当上述记忆体包含至少一缺陷记忆单元时,则执行 下列步骤: 扫描上述原始程式码,在上述缺陷记忆单元所对应 于上述原始程式码之一缺陷位址前后,决定第一分 断点和第二分断点; 移动上述第一分断点和上述第二分断点之间的区 段程式码,至第一位址和第二位址之间,上述第一 位址和上述第二位址之间之位址皆不对应于上述 记忆体之上述缺陷位址; 当上述区段程式码包含至少一可执行之指令时,连 接移动后之上述区段程式码与上述原始程式码中 未移动部分的执行顺序;以及 载入上述原始程式码中未移动部分、上述连接指 令和移动后之上述区段程式码至上述记忆体中。2 .如申请专利范围第1项所述之处理方法,其中尚包 括一步骤: 修正上述区段程式码与上述原始程式码中未移动 部分之间的参考位址。3.如申请专利范围第2项所 述之处理方法,其中上述修正步骤系用以修正移动 后之上述区段程式码对于上述原始程式码中未移 动部分之相对定址模式参考位址,以及修正上述原 始程式码中未移动部分对于移动后之上述区段程 式码之相对定址模式参考位址以及绝对定址模式 参考位址。4.如申请专利范围第2项所述之处理方 法,其中尚包括一步骤: 修正移动后之上述区段程式码内的绝对定址模式 参考位址。5.如申请专利范围第1项所述之处理方 法,其中扫描上述原始程式码之步骤中更包括下列 步骤: 依序读取上述原始程式码; 依据上述原始程式码中各指令组成,输出复数可分 断点;以及 根据上述缺陷位址和插入之上述连接指令,决定上 述第一分断点和上述第二分断点。6.如申请专利 范围第5项所述之处理方法,其中依序读取上述原 始程式码之步骤中更包括下列步骤: 提供一第一资料表和一第二资料表,上述第一资料 表用以记录上述原始程式码中条件分支指令之分 支目的位址,上述第二资料表用以记录已读取的位 址范围; 当所读取的指令为一条件分支指令时,记录上述条 件分支指令之分支目的位址于上述第一资料表; 当完成读取一指令时,更新上述第二资料表之位址 范围;以及 当所读取的指令为一结束指令或其位址在上述第 二资料表之位址范围内时,并且当上述第一资料表 之分支目的位址不属于上述第二资料表之位址范 围时,则根据上述第一资料表之分支目的位址继续 读取。7.如申请专利范围第1项所述之处理方法,其 中上述连接步骤中,系插入第一无条件分支指令于 上述第一分断点之位址上,上述第一无条件分支指 令之目的位址为上述区段程式码移动后之第一位 址,并且插入第二无条件分支指令于上述区段程式 码移动后之第二位址,上述第二无条件分支指令之 目的位址为上述第二分断点。8.如申请专利范围 第1项所述之处理方法,其中上述第二分断点系在 上述原始程式码之最后一个位元组之后。9.一种 记忆体处理系统,用以处理一包含复数记忆单元之 记忆体,其包括: 一微处理器,耦接于上述记忆体,用以载入一原始 程式码,当上述原始程式码被载入之记忆单元皆为 良好记忆单元时,则载入上述原始程式码于上述记 忆体,当上述原始程式码被载入之记忆单元包含至 少一缺陷记忆单元时,则扫描上述原始程式码,在 上述缺陷记忆单元所对应于上述原始程式码之一 缺陷位址前后,决定第一分断点和第二分断点,并 且移动上述第一分断点和上述第二分断点之间的 区段程式码至第一位址和第二位址之间,并且当上 述区段程式码包含至少一可执行之指令时,连接上 述区段程式码与上述原始程式码中未移动部分的 执行顺序,并且载入上述原始程式码中未移动部分 、上述连接指令和移动后之上述区段程式码至上 述记忆体中,其中上述第一位址和上述第二位址之 间之程式码所对应之记忆体位址不包含上述缺陷 位址。10.如申请专利范围第9项所述之处理系统, 其中上述第二分断点系在上述原始程式码之最后 一个位元组之后。11.如申请专利范围第9项所述之 处理系统,其中上述微处理器尚修正移动后之上述 区段程式码与上述原始程式码中未移动部分之间 的参考位址,以及移动后之上述区段程式码内之参 考位址。12.如申请专利范围第9项所述之处理系统 ,其中上述微处理器之连接动作中,系插入第一无 条件分支指令于上述第一分断点之位址上,上述第 一无条件分支指令之目的位址为上述区段程式码 移动后之第一位址,并且插入第二无条件分支指令 于上述区段程式码移动后之第二位址,上述第二无 条件分支指令之目的位址为上述第二分断点。13. 如申请专利范围第9项所述之处理系统,其中上述 记忆体和上述微处理器系置于系置于同一晶片内 。14.如申请专利范围第9项所述之处理系统,其中 上述记忆体和上述微处理器系置于系置于独立之 不同晶片内。15.一种防治局部弱化记忆体处理方 法,适用于已载负一原始程式码之一记忆体,其包 括下列步骤: 检查上述记忆体,用以找出上述记忆体中功能弱化 之缺陷记忆单元; 当上述记忆体中包含至少一功能弱化之记忆单元, 则执行下列步骤: 扫描上述原始程式码,在上述缺陷记忆单元对应于 上述原始程式码之一缺陷位址前后,决定第一分断 点和第二分断点; 移动上述第一分断点和上述第二分断点之间的区 段程式码,至上述记忆体中之第一记忆单元和第二 记忆单元之间,上述第一记忆单元和上述第二记忆 单元之间不包含上述缺陷记忆单元;以及 当上述区段程式码包含至少一可执行之指令时,连 接移动后之上述区段程式码与上述原始程式码中 未移动部分的执行顺序。16.如申请专利范围第15 项所述之处理方法,其中上述第二分断点系在上述 原始程式码之最后一个位元组之后。17.如申请专 利范围第15项所述之处理方法,其中尚包括一步骤: 修正移动后之上述区段程式码与上述原始程式码 中未移动部分之间的参考位址。18.如申请专利范 围第17项所述之处理方法,其中上述修正步骤系用 以修正移动后之上述区段程式码对于上述原始程 式码中未移动部分之相对定址模式参考位址,以及 修正上述原始程式码中未移动部分对于移动后之 上述区段程式码之相对定址模式参考位址以及绝 对定址模式参考位址。19.如申请专利范围第18项 所述之处理方法,其中尚包括一步骤: 修正移动后之上述区段程式码内的绝对定址模式 参考位址。20.如申请专利范围第15项所述之处理 方法,其中扫描上述原始程式码之步骤中更包括下 列步骤: 依序读取上述原始程式码; 依据上述原始程式码中各指令组成,输出复数可分 断点;以及 根据上述缺陷位址和插入之上述连接指令,决定上 述第一分断点和上述第二分断点。21.如申请专利 范围第20项所述之处理方法,其中依序读取上述原 始程式码之步骤中更包括下列步骤: 提供一第一资料表和一第二资料表,上述第一资料 表用以记录上述原始程式码中条件分支指令之分 支目的位址,上述第二资料表用以记录已读取的位 址范围; 当所读取的指令为一条件分支指令时,记录上述条 件分支指令之分支目的位址于上述第一资料表; 当完成读取一指令时,更新上述第二资料表之位址 范围;以及 当所读取的指令为一结束指令或其位址在上述第 二资料表之位址范围内时,并且当上述第一资料表 之分支目的位址不属于上述第二资料表之位址范 围时,则根据上述第一资料表之分支目的位址继续 读取。22.如申请专利范围第15项所述之处理方法, 其中上述连接步骤中,系插入第一无条件分支指令 于上述第一分断点之位址上,上述第一无条件分支 指令之目的位址为上述区段程式码移动后之第一 记忆单元,并且插入第二无条件分支指令于上述区 段程式码移动后之第二记忆单元之后,上述第二无 条件分支指令之目的位址为上述第二分断点。23. 一种记忆体处理系统,用以处理一包含复数记忆单 元并且已储存一原始程式码之记忆体,其包括: 一微处理器,耦接于上述记忆体,用以检查上述记 忆体之记忆单元是否有功能弱化之记忆单元,当上 述弱化之记忆单元存在并且已储存上述原始程式 码时,则扫描上述原始程式码,在上述弱化之记忆 单元对应于上述原始程式码之一弱化位址前后,决 定第一分断点和第二分断点,并且移动上述第一分 断点和上述第二分断点之间的区段程式码至上述 记忆体中之第一记忆单元和第二记忆单元之间,并 且当上述区段程式码包含至少一可执行之指令时, 连接移动后之上述区段程式码与上述原始程式码 中未移动部分的执行顺序,其中上述第一记忆单元 和上述第二记忆单元之间不包含上述缺陷记忆单 元。24.如申请专利范围第23项所述之处理系统,其 中上述第二分断点系在上述原始程式码之最后一 个位元组之后。25.如申请专利范围第23项所述之 处理系统,其中上述微处理器系直接耦接于上述记 忆体。26.如申请专利范围第23项所述之处理系统, 其中上述微处理器尚修正移动后之上述区段程式 码与上述原始程式码中未移动部分之间的参考位 址,以及移动后之上述区段程式码内之参考位址。 27.如申请专利范围第23项所述之处理系统,其中上 述微处理器之连接动作中,系插入第一无条件分支 指令于上述第一分断点之位址上,上述第一无条件 分支指令之目的位址为上述区段程式码移动后之 第一记忆单元,并且插入第二无条件分支指令于上 述区段程式码移动后之第二记忆单元,上述第二无 条件分支指令之目的位址为上述第二分断点。28. 如申请专利范围第23项所述之处理系统,其中上述 记忆体和上述微处理器系置于系置于同一晶片内 。29.如申请专利范围第23项所述之处理系统,其中 上述记忆体和上述微处理器系置于系置于独立之 不同晶片内。30.一种记忆体处理方法,适用于包含 复数记忆单元之一记忆体和待载入于上述记忆体 之一原始程式码,其包括下列步骤: 决定上述记忆体是否包含缺陷记忆单元; 当上述记忆体不包含缺陷记忆单元或上述原始程 式码不被载入于上述记忆体中缺陷记忆单元所对 应之缺陷位址时,则载入上述原始程式码至上述记 忆体; 当上述原始程式码被载入上述记忆体内至少一缺 陷记忆单元所对应之缺陷位址时,则执行下列步骤 : 扫描上述原始程式码,在上述缺陷记忆单元所对应 于上述原始程式码之一缺陷位址前后,决定第一分 断点和第二分断点; 载入上述原始程式码至上述记忆体中; 载入上述第一分断点和上述第二分断点之间的区 段程式码,至第一记忆单元和第二记忆单元之间, 上述第一记忆单元和上述第二记忆单元之间不包 含上述缺陷记忆单元;以及 当上述区段程式码包含至少一可执行之指令时,连 接位于上述第一记忆单元和第二记忆单元之间的 上述区段程式码与上述原始程式码中其他部分的 执行顺序。31.如申请专利范围第30项所述之处理 方法,其中尚包括一步骤: 修正位于上述第一记忆单元和第二记忆单元之间 的上述区段程式码与上述原始程式码中其他部分 之间的参考位址。32.如申请专利范围第31项所述 之处理方法,其中上述修正步骤系用以修正位于上 述第一记忆单元和第二记忆单元之间的上述区段 程式码对于上述原始程式码中其他部分之相对定 址模式参考位址,以及修正上述原始程式码中其他 部分对于位于上述第一记忆单元和第二记忆单元 之间的上述区段程式码之相对定址模式参考位址 以及绝对定址模式参考位址。33.如申请专利范围 第32项所述之处理方法,其中尚包括一步骤: 修正位于上述第一记忆单元和第二记忆单元之间 的上述区段程式码内的绝对定址模式参考位址。 34.如申请专利范围第30项所述之处理方法,其中扫 描上述原始程式码之步骤中更包括下列步骤: 依序读取上述原始程式码; 依据上述原始程式码中各指令组成,输出复数可分 断点;以及 根据上述缺陷位址和插入之上述连接指令,决定上 述第一分断点和上述第二分断点。35.如申请专利 范围第34项所述之处理方法,其中依序读取上述原 始程式码之步骤中更包括下列步骤: 提供一第一资料表和一第二资料表,上述第一资料 表用以记录上述原始程式码中条件分支指令之分 支目的位址,上述第二资料表用以记录已读取的位 址范围; 当所读取的指令为一条件分支指令时,记录上述条 件分支指令之分支目的位址于上述第一资料表; 当完成读取一指令时,更新上述第二资料表之位址 范围;以及 当所读取的指令为一结束指令或其位址在上述第 二资料表之位址范围内时,并且当上述第一资料表 之分支目的位址不属于上述第二资料表之位址范 围时,则根据上述第一资料表之分支目的位址继续 读取。36.如申请专利范围第30项所述之处理方法, 其中上述连接步骤中,系插入第一无条件分支指令 于上述第一分断点之位址上,上述第一无条件分支 指令之目的位址为上述区段程式码之第一记忆单 元,并且插入第二无条件分支指令于上述区段程式 码之第二记忆单元,上述第二无条件分支指令之目 的位址为上述第二分断点。37.一种记忆体处理系 统,用以处理一包含复数记忆单元之记忆体,其包 括: 一微处理器,耦接于上述记忆体,用以载入一原始 程式码,当上述原始程式码被载入之记忆单元包含 至少一缺陷记忆单元时,则该系统能扫描上述原始 程式码,且在上述缺陷记忆单元所对应于上述原始 程式码之一缺陷位址前后,决定第一分断点和第二 分断点,并且载入上述原始程式码至上述记忆体中 以及载入上述第一分断点和上述第二分断点之间 的区段程式码至第一记忆单元和第二记忆单元之 间,并且当上述区段程式码包含至少一可执行之指 令时,连接位于上述第一记忆单元和第二记忆单元 之间的上述区段程式码与上述原始程式码中其他 部分的执行顺序,其中上述第一记忆单元和上述第 二记忆单元之间不包含上述缺陷记忆单元。38.如 申请专利范围第37项所述之处理系统,其中上述第 二分断点系在上述原始程式码之最后一个位元组 之后。39.如申请专利范围第37项所述之处理系统, 其中上述微处理器尚修正位于上述第一记忆单元 和第二记忆单元之间的上述区段程式码与上述原 始程式码中其他部分之间的参考位址,以及位于上 述第一记忆单元和第二记忆单元之间的上述区段 程式码内之参考位址。40.如申请专利范围第37项 所述之处理系统,其中上述微处理器之上述连接动 作中,系插入第一无条件分支指令于上述第一分断 点之位址上,上述第一无条件分支指令之目的位址 为上述区段程式码之第一记忆单元,并且插入第二 无条件分支指令于上述区段程式码之第二记忆单 元,上述第二无条件分支指令之目的位址为上述第 二分断点。41.如申请专利范围第37项所述之处理 系统,其中上述记忆体和上述微处理器系置于系置 于同一晶片内。42.如申请专利范围第37项所述之 处理系统,其中上述记忆体和上述微处理器系置于 系置于独立之不同晶片内。43.一种程式码扫描处 理方法,用以决定一原始程式码之可分断点,上述 程式码扫描处理方法包括下列步骤: 提供一第一资料表和一第二资料表,上述第一资料 表用以记录上述原始程式码中的条件分支指令相 关之待扫描位址,上述第二资料表用以记录已读取 的位址范围; 依序读取上述原始程式码; 当所读取的指令为一条件分支指令时,记录上述条 件分支指令相关之待扫描位址于上述第一资料表, 并且依上述条件分支指令之下一位址或分支目的 位址继续扫描; 随指令之读取,更新上述第二资料表之位址范围, 并且当完成读取至少一完整指令时,输出可分断点 ;以及 当所读取的指令为一结束指令或其位址在上述第 二资料表之位址范围内时,则根据上述第一资料表 之一待扫描位址继续读取,并将该待扫描位址从上 述第一资料表中除去。44.如申请专利范围第43项 所述之处理方法,其中上述程式码扫描处理方法系 在一原始程式码载入一记忆体时,决定可移动之区 段程式码。45.如申请专利范围第44项所述之处理 方法,其中上述记忆体包含至少一缺陷记忆单元。 46.如申请专利范围第43项所述之处理方法,其中上 述条件分支指令相关之待扫描位址为上述条件分 支指令之分支目的位址。47.如申请专利范围第43 项所述之处理方法,其中上述条件分支指令相关之 待扫描位址为上述条件分支指令之下一位址。48. 如申请专利范围第43项所述之处理方法,其中尚包 括一步骤: 当所读取的指令为一无条件分支指令时,则由上述 无条件分支指令之分支目的位址继续扫描。49.如 申请专利范围第43项所述之处理方法,其中当上述 所读取的指令为一结束指令或其位址在上述第二 资料表之位址范围内,且上述第一资料表中无待扫 描位址时,则结束扫描。50.如申请专利范围第43项 所述之处理方法,其中当扫描结束时,将仍未被扫 描到之一连续程式码位址判定为一资料程式码区 段。51.如申请专利范围第43项所述之处理方法,其 中当扫描结束时,将仍未被扫描到之一连续程式码 位址判定为一资料或堆叠程式码区段。52.如申请 专利范围第43项所述之处理方法,其中当扫描结束 时,将仍未被扫描到之一连续程式码位址判定为一 非指令区段。图式简单说明: 第一图表示一般单晶片电脑(single chip computer)或单 晶片系统(system-on-a-chip)之系统架构图。 第二图表示一般机器程式码在执行(execution)时的 流程图。 第三图表示本发明第一实施例之局部缺陷记忆体 处理系统的架构图。 第四图表示本发明第一实施例之局部缺陷记忆体 处理方法的流程图。 第五图表示在本发明中程式码扫描方法的流程图 。 第六图表示根据本发明之程式码扫描方法处理一 程式码范例的示意图。 第七图表示在本发明中连接移动后区段程式码和 原始程式码未移动部分的示意图。 第八图表示在本发明中修正参考位址的示意图。 第九图表示本发明第二实施例之局部缺陷记忆体 处理方法的流程图。 第十图表示本发明第三实施例之局部缺陷记忆体 处理系统的架构图。 第十一图表示本发明第三实施例之局部缺陷记忆 体处理方法的流程图。
地址 新竹科学工业园区研新三路四号