CN101410807A - 用于与存储器装置一起使用的软件断点 - Google Patents
用于与存储器装置一起使用的软件断点 Download PDFInfo
- Publication number
- CN101410807A CN101410807A CNA2006800024777A CN200680002477A CN101410807A CN 101410807 A CN101410807 A CN 101410807A CN A2006800024777 A CNA2006800024777 A CN A2006800024777A CN 200680002477 A CN200680002477 A CN 200680002477A CN 101410807 A CN101410807 A CN 101410807A
- Authority
- CN
- China
- Prior art keywords
- breakpoint
- address
- storage arrangement
- microprocessor
- processing logic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及提供用于与存储器装置一起使用的软件断点的系统和方法。本发明的一方面包括:微处理器;存储器装置,可通过耦合到所述微处理器的数据总线和地址总线对其进行访问;和处理逻辑,其耦合到所述存储器装置并耦合到所述微处理器。所述处理逻辑通过用断点模式替代待从所述存储器装置读取的值来设定用于所述存储器装置的软件断点,其中代替所述值的所述断点模式在数据总线上被发送到所述微处理器。
Description
技术领域
本发明涉及微控制器和存储器装置,且更特定来说涉及在存储器装置中使用软件断点来中断微控制器上的程序执行。
背景技术
微处理器和其它微控制器的开发人员具有一种广泛的方法来测试他们所开发的微控制器应用程序。此方法的关键部分在于通过执行程序指令以及使用调试程序来测试微控制器例行程序。
在调试或其它时候,通常会由于各种原因而需要中断正运行的程序。举例来说,在调试过程中,开发人员可能需要停止程序来确定中途已通过程序的执行而分配给变量或存储器位置的值。或者,可能发生要求程序停止执行的事件,随后程序将于其停止处继续。在系统运行期间执行代码的调试操作可由调试代理(程序)来进行,此调试代理通过微处理器和其端口(例如,联合测试行动小组(JTAG)端口)而提供访问。
使程序执行中断的一种方法是通过使用断点。软件断点是基于程序执行期间由微处理器处理的指令来执行的。软件断点依赖存储于由微处理器访问的存储器中的断点指令或“断点模式”。当微处理器读取并辨识出来自存储器的断点模式时,微处理器便被迫进入调试状态。断点模式可存储在存储器中的特定存储器位置上,使得在程序促使此位置的模式待执行时,产生断点。可以极少的额外成本或组件来实施大量的软件断点,因为它们仅需要有限的额外逻辑。
为了在特定的存储器地址处设定软件断点,调试代理(或提供断点的其它程序)指示微处理器用断点模式替换存储器中的指定断点地址处的原始指令。被替换的原始指令存储于其它存储器中。在程序执行期间,当微处理器到达断点地址时,获取并执行断点模式,从而迫使微处理器进入调试状态。在调试状态下,调试代理可指示微处理器返回到非调试模式。将原始指令恢复到断点存储地址并加以执行(在一些实施例中,断点模式随后可再次替换此断点地址处的原始指令),且微处理器返回到剩余程序指令的正常执行。
每一调试代理通过与微处理器的连接(例如JTAG端口)而充当存储器监视器,使得每设定一个软件断点,便在存储器中用断点模式来替换指令。每当断点结束或被移除时,便在存储器中用原始指令替换断点指令。因此,设定软件断点要求所有系统存储器均为可写的。
软件断点通常不用于某些类型的存储器中(例如,许多类型的非易失性存储器),因为为了设定软件断点,必须将断点模式写入存储器中,而在使用简单的微处理器写入访问时大多数非易失性存储器无法被写入。标准的ROM是不合适的,因为在操作中无法写入数据。例如快闪存储器的其它类型非易失性存储器通常使用软件断点,因为用于代码存储的典型的大尺寸非易失性存储器无法采用与静态随机访问存储器(SRAM)相同的简单方式进行写入。此外,快闪存储器在其损坏之前仅具有相对较小量的容许擦除循环,且因此其非常不适合使用软件断点。
因此,在将芯片上系统嵌入非易失性存储器中时此等系统的调试极难进行,因为通过调试代理来设定软件断点是不可能的或并非易于完成的。已提出某些解决方案。例如,可跟踪关于电路输出的内部总线行为以确定程序何时不执行其被期望执行的动作,但此需要许多可用的电路输出;用于此特征的额外引脚数将增加电路成本。可执行专用于对芯片上的目标存储器执行访问的减少的迹线;然而,封装的引线数仍需增加。此等及其它所提议的解决方案实施起来较为昂贵,尤其是在用于断点和调试目的时。
因此,需要一种在具有用简单的微处理器写入访问不可写入的存储器装置的系统中,用于设定和执行软件断点的方法和系统,且其中所述解决方案可以简单并低廉的方式来实施。本发明解决了这一需要。
发明内容
本申请案的发明涉及提供用于与存储器装置一起使用的软件断点。本发明的一方面,一种用于提供存储器的软件断点的系统包括:微处理器、可通过耦合到微处理器的数据总线和地址总线进行访问的存储器装置,和耦合到存储器装置及微处理器的处理逻辑,所述处理逻辑可操作以通过用断点模式替代待从存储器装置读取的值来设定用于存储器装置的软件断点,其中代替所述值的所述断点模式在数据总线上被发送到微处理器。
在本发明的另一方面中,一种用于提供用于与存储器装置一起使用的软件断点的方法包括:在存储器装置的读取访问中从微处理器接收一个地址值,且用断点模式替代存储于所述存储器装置中的数据值并将断点模式提供到微处理器。
在本发明的另一方面中,一种用于提供用于存储器装置的软件断点的方法包括:在从微处理器到存储器装置的写入访问中接收地址和数据;如果数据与断点模式匹配,那么将地址存储到断点管理单元中的断点高速缓冲存储器中;且如果数据与断点模式不匹配,那么清除断点管理单元的断点高速缓冲存储器中所存储的地址。
本发明提供允许由无法以简单的微处理器写入访问写入数据的存储器装置(例如,大多数非易失性存储器装置)使用软件断点的架构。本发明允许在使用最小数量的额外逻辑和寄存器的情况下向多个这样的存储器装置提供软件断点,因此显著减小系统成本。
附图说明
图1是说明包括微处理器和存储器装置的现有技术系统的方框图;
图2是说明向非易失性存储器装置提供软件断点的本发明系统的方框图;
图3是说明图2的软件断点管理单元中所使用的用于清除和存储软件断点的逻辑的实例的示意图;
图4是说明图2的软件断点管理单元中所使用的用于提供软件断点的逻辑的实例的示意图;
图5是说明用于在非易失性存储器中设定和清除软件断点的本发明方法的流程图;和
图6是说明用于在非易失性存储器中读取软件断点的本发明方法的流程图。
具体实施方式
本发明涉及存储器使用的用以中断微控制器上的程序执行的软件断点。提供以下说明内容以使得所属领域的技术人员能作出和使用本发明,且是结合专利申请和其要求而提供的。对优选实施例的各种修改以及本文所描述的一般性原理和特征易于为所属领域的技术人员所了解。因此,本发明不期望受限于所示实施例,而是符合与本文所描述的原理和特征相一致的最广泛范畴。
本发明主要依据特定实施方案中所提供的特定系统加以描述。然而,所属领域的技术人员易于认识到,此方法和系统将在其它实施方案中有效地操作。本发明也将结合具有某些步骤的特定方法加以描述。然而,此方法及系统也可有效用于具有与本发明不一致的不同和/或额外步骤的其它方法。
为了更加具体地描述本发明的特征,请结合以下论述参见图1到图6。
图1是包括微处理器和芯片上存储器装置的现有技术系统10的方框图。系统10包括微处理器12、随机访问存储器(RAM)装置14、非易失性存储器(NVM)装置16、系统地址解码器18,和逐位数据多路复用器20。
微处理器12在执行对从属装置(例如,存储器装置14和16)的读取和写入访问时产生控制信号。RAM装置14能够存储稍后可被覆写或擦除的数据。NVM装置16存储数据,但无法以常规方法存储软件断点模式,因为该模式无法采用简单的微处理器写入访问写入到存储器中。例如,非易失性存储器装置(例如,ROM(只读存储器)、EPROM(电可擦除只读存储器)和快闪存储器)至少因为此原因而不适合使用软件断点模式。
微处理器12控制信号包括读取/写入控制信号30、访问大小控制总线32、地址总线34和写入数据总线36。读取/写入控制信号30选择对存储器装置14或16的读取或写入操作。地址总线34耦合到系统地址解码器18;访问大小控制总线32也可在将管理地址未对准的情况下耦合到解码器18。系统地址解码器18对每一从属装置产生从属选择信号,以指示从属装置执行由主控器(微控制器12)请求的传递,例如读取或写入操作。从属选择信号38被发送到RAM装置14,且从属选择信号40被发送到ROM装置16。写入数据总线36将微处理器12耦合到存储器装置14和16并提供来自微处理器12的待写入RAM装置14中的数据。
为了进行读取访问,存储器装置14和16的输出总线42和44耦合到逐位数据多路复用器20,逐位数据多路复用器20多路复用输出总线42和44并在返回耦合到微处理器12的读取数据总线46上提供输出数据。
现有技术系统10可提供用于RAM装置14的软件断点,但难以结合NVM装置16或其它非易失性存储器装置来使用软件断点,且因此在调试和测试环境方面具有明显的限制性。
图2是提供用于包括易失性和非易失性存储器装置的系统的软件断点的本发明系统100的一个实施例的方框图。系统100包括微处理器102、RAM装置104、非易失性存储器(NVM)装置106、系统地址解码器108、软件断点管理单元(SBMU)110和逐位数据多路复用器112。
微处理器102在执行对从属装置(例如,存储器装置104和106)的读取或写入访问时产生控制信号。在所描述的实施例中,微处理器102包括在与系统100的其它组件相同的芯片上或集成电路上。在其它实施例中,微处理器102可独立于其它组件而提供。微处理器102可以是任何类型的合适的微控制器。
RAM装置104能够存储稍后可被覆写或擦除的数据,且因此易于存储来自通常在外部运行且通过微处理器102来操作的调试代理的标准软件断点。RAM装置104可以是各种可编程存储器装置中的任一种,通常是易失性存储器,例如静态随机访问存储器(SRAM)。
NVM装置106是存储可由微处理器102读取的数据的非易失性存储器装置。然而,难以通过简单的微处理器写入访问来写入或改变数据。本文所使用的术语“非易失性存储器装置”是指标准的只读存储器(其仅可编程一次)、电可编程只读存储器(EPROM)、电可擦除只读存储器(EEPROM)和快闪存储器,以及任何其它类似类型的非易失性存储器。所有这些提到类型的存储器难以与软件断点一起使用,因为其在编程方面不具有易失性存储器(例如RAM 104)所具有的通用性,且无法采用简单的微处理器写入访问将数据写入到其中。
微处理器102产生的控制信号包括:读取/写入控制信号120、访问大小控制总线122、地址总线124,和写入数据总线126。读取/写入控制信号120选择读取或写入操作以启用对存储器装置104或106的操作。地址总线124耦合到系统地址解码器108以将存储器装置104或106中的地址提供到解码器108。访问大小控制总线122也可在将管理地址未对准的情况下耦合到解码器108。系统地址解码器108对从属装置产生从属选择信号,以指示适当的从属装置执行由主控器(微控制器102)请求的传递,例如读取或写入操作。从属选择信号128被提供到RAM装置104,且预期用于NVM装置106的从属选择信号130被提供到软件断点管理单元(SBMU)110。
写入数据总线126将微处理器102耦合到存储器装置104和106和SBMU 110,并提供来自微处理器的待在由地址总线124上的地址值所指定的位置处写入存储器装置104或106中的数据(例如,如果存储器装置是EEPROM或快闪存储器,那么可将写入数据总线用于NVM装置106)。可通过通常在调试应用程序时使用的调试代理在写入数据总线126上发送软件断点模式。调试代理也可以在写入总线126上发送曾被断点模式替换的原始指令以替换断点模式。在正常操作中,当微处理器102正在运行检索并执行存储于存储器104或106中的指令并检索到断点模式时,发生异常,使得程序的执行中断,且由异常处理程序即时控制处理器,向调试程序提供信息等。
SBMU 110管理针对NVM装置106而设定的软件断点。通过使用用于NVM装置106的新的从属选择信号140来替换进入的从属选择信号130,使SBMU 110过滤用于NVM装置106的进入的从属选择信号130。选择信号140被发送到NVM装置106以在微处理器的读取访问不对应于断点时(即,当读取访问处于并非为断点地址的地址时)执行正常的读取操作。当读取访问处于断点地址时,SBMU 110不提供选择信号140,而是通过SBMU输出数据总线142替代断点模式。因此,通过在指令获取对应于断点时过滤NVM选择信号140,SBMU 110绕过由NVM输出总线134提供的来自NVM装置106的响应。
为了对NVM装置106进行写入访问,SBMU 110检测并检查写入操作。如果SBMU110检测到断点模式的写入,那么将相关地址存储到地址高速缓冲存储器中作为断点地址,因此有效地存储用于NVM装置106的软件断点。如果SBMU 110检测到待恢复的原始指令(非断点模式的数据)的写入,那么释放(清除)相关的断点地址高速缓冲存储器。下文将关于图3-图6更加详细地描述此操作。
RAM装置104的输出总线132、NVM装置106的输出总线134和SBMU 110的输出总线142耦合到逐位数据多路复用器112,逐位数据多路复用器112多路复用输出总线132、134和140,并通过读取数据总线136将这些总线上的数据提供给微处理器102。多路复用器112也接收存储器选择信号128和140,以及SBMU选择信号143,SBMU选择信号143通知多路复用器是经由读取数据总线136发送SBMU数据总线142上的数据(即,在进行对断点地址的读取访问时),还是发送NVM输出总线134上的数据。
应注意,额外的非易失性存储器装置可耦合到软件断点管理单元(SBMU)110,其中SBMU可向任何及所有所连接的非易失性存储器提供软件断点。系统地址解码器108可向SBMU 110发送额外的选择信号以用于所使用的每一额外的非易失性存储器装置,且SBMU 110可在适当时向额外的非易失性存储器装置发送相应的选择信号。例如,可将用于第二非易失性存储器装置的解码器选择信号131从系统地址解码器108发送到SBMU 110,且SBMU 110可发出选择信号141至第二非易失性存储器装置(未图示)。使例如SMBU 110的单个单元控制用于多个非易失性存储器装置的软件断点是本发明的一个主要优点,因为无需针对每一额外的非易失性存储器装置对SBMU的处理逻辑或高速缓冲存储器进行复制,从而极大地减少了所需的逻辑和寄存器,以及系统成本。
图3是包括于图2的软件断点管理单元(SBMU)110中的存储和清除断点的电路200的示意图。在调试代理希望将软件断点存储于NVM装置106中,或在调试代理希望在NVM装置106中的存储软件断点的存储器位置处恢复原始指令时使用此电路200。
SBMU 110允许使用SBMU中的N组专用寄存器来存储(设定)N个软件断点。在以下说明描述内容中,所存储或清除的软件断点标记为I,且一个或一个以上其它软件断点被标记为J,其中I和J是在0到(N-1)断点范围内的索引。
软件断点模式存储于断点模式寄存器202中。在所描述的实施例中,此相同的断点模式用作用于NVM装置106的所有所存储的断点的模式。在代码的常规执行期间由微处理器上的软件辨析出此模式后,此模式促使在程序执行中产生中断以用于调试目的。
断点模式从寄存器202经由总线204(总线204等效于图2中的输出总线142)发送到比较器206,比较器206将断点模式和在输入写入数据总线126上接收到的数据进行比较。写入数据总线126上的数据是运行于微处理器102上的调试程序希望写入NVM装置106中的数据。如果写入总线126上数据是断点模式,那么这是存储操作,其中调试程序希望将断点存储在指定地址。如果数据是非断点模式的其它数据,那么假定是清除操作,其中调试程序希望恢复存储在断点的存储地址处的原始数据。
比较器206将断点模式和数据进行比较,并产生比较旗标208,比较旗标208指示输入到比较器的两个输入是相等(高电平)还是不相等(低电平)。如果比较器的两个输入的数据相等,那么写入数据总线126上的数据和软件断点模式匹配。
由系统地址解码器108提供非易失性存储器输入选择信号130和131,其中信号130是用于NVM装置106的选择信号且信号131是用于不同的非易失性存储器装置(如果存在的话)的选择信号。这些信号可选择微处理器希望从包括NVM装置106的多个非易失性存储器中的哪一者读取数据。如果使用额外的非易失性存储器装置,那么每一额外的存储器装置可使其自身的信号类似于信号130和131。选择信号130和131(以及任何其它的选择信号)以逻辑方式组合于“或”门212处以产生全局选择信号214,以指示已选择非易失性存储器装置。比较旗标208、读取/写入控制信号120(具有写入命令或反相的读取命令,且来自如图2所示的微处理器102)和全局选择信号214被输入到“与”门216,“与”门216产生存储断点命令218。存储断点命令如果为“真”,那么指示调试程序对NVM装置106的写入访问是存储断点操作,且指示总线126上的当前写入访问的特征必须被存储。
断点状态寄存器220存储断点I的状态位或“标签”;如果所述位是0,那么用于断点I的寄存器不在使用中,且如果所述位是1,那么寄存器在使用中。在线路222上将来自状态寄存器I 220的位发出到反相器224,反相器224产生旗标信号226。旗标信号226在高电平时指示用于断点I的一组寄存器不在使用中。
还存在可存储于SBMU 110中的专用寄存器中的(N-1)个其它软件断点。这些其它断点中的每一者具有类似于寄存器220的断点状态寄存器和类似于地址寄存器236的地址寄存器,以及其自身的类似于电路200的逻辑电路,且这些都在图3中展示。本文中将先于当前断点I所设定的任何其它软件断点都称作断点J,其中J<I。
来自断点状态寄存器J的状态寄存器位227在“与”门228处经受逐位的“与”操作,即,所有的J状态位都被“与”。“与”门228产生状态旗标信号230,其指示所有先前组的寄存器J(其中J<I)何时已在使用中,即,断点J在先前何时被设定且已在使用中。
状态旗标信号230、存储断点命令218和状态旗标信号226都输入到“与”门232,“与”门232产生存储断点I命令234。因此,仅在以下情况下才产生命令234:所有先前断点都在使用中,当前断点寄存器可自由存储断点和写入操作的进入数据与断点模式匹配。存储断点命令234从“与”门232提供到断点I地址寄存器236,且用于使得能够将输入地址总线124的值存储在地址寄存器236中。
在将存储或清除软件断点时使用电路200的其它部分。将输入地址总线124与存储于断点模式寄存器中的地址进行比较。这一操作是在将存储于断点I地址寄存器236中的地址237输入到比较器238以便与地址总线124上的数据进行永久比较时完成的。由比较器238产生比较旗标240,且此旗标指示地址总线124上的数据是否与已设定软件断点I的断点地址匹配。
如果比较旗标240是“真”,那么发生匹配,且将采取的动作取决于当前是由调试程序清除断点的写入访问还是程序执行期间读取断点地址处的指令的读取访问。此写入访问和读取访问由控制信号120指示。如果当前访问是写入访问,那么可清除(如果进入的模式不等同于软件断点模式)或可存储(如果进入的模式等同于软件断点模式)使用中的相关断点I。如果当前访问是读取访问,那么SBMU 110可在输出数据总线142上将存储在断点模式寄存器202中的软件断点模式返回到逐位数据多路复用器112,如图2所示,使得将其返回到微处理器102。
为了清除软件断点I,将匹配的软件断点模式比较旗标208发送到反相器250进行反相,从而产生旗标252,旗标252如果是高电平,那么其指示进入的写入数据总线126上的数据不等同于软件断点模式,且因此是清除操作。旗标252、写入输入命令信号120和全局选择信号214输入到“与”门254,与”门254产生清除断点命令256。清除断点命令256、断点I状态寄存器位222(如果是高电平,那么其指示断点I在使用中)和地址比较旗标240(指示待写入数据的地址与地址寄存器236的地址匹配)都输入到“与”门258,“与”门258产生清除断点I信号260。因此,清除软件断点I命令260仅在以下情况下有效:断点I寄存器在使用中,输入地址总线与断点I地址匹配,和当前写入访问不存储断点模式。
当存储或清除断点I时,必须分别设定或清除断点I状态寄存器220。断点管理使得状态寄存器262能存储用于断点管理的启用状态或禁用状态。在所描述的实施例中,仅在此寄存器262启用时才可存储断点。通常,管理寄存器262在调试期间被启用。寄存器的状态作为信号264被发送到“与”门266。存储断点I命令234和断点I状态寄存器位222被输入到“或”门268,“或”门268的输出271是提供到“与”门266的设定断点状态寄存器位命令。到达“与”门266的第三输入是清除断点I命令260,此命令260已在线路272上经反相器270反相。“与”门266产生设定/清除断点I状态寄存器位命令274,其被提供到断点I状态寄存器220以设定其状态。因此,仅在存储断点I命令234有效且清除断点I命令260无效时才将断点I“在使用中”的状态设定在断点I状态寄存器220中。相反,仅在清除断点I命令260有效时(这也是在通过寄存器262使系统的断点管理禁用时)才清除断点I状态寄存器220。当断点I状态寄存器被清除时,认为用于断点I的一组寄存器被清除,且随后用于新断点的新地址可写入到地址寄存器236中(覆盖旧地址)。
图4是包括于图2的软件断点管理单元(SBMU)110中的用于提供代替读取访问期间所存储的指令的断点模式的断点提供电路300的示意图。在微处理器102使用对NVM装置106的读取操作来请求断点地址处的数据时提供断点模式。
当微处理器102(或其它主控制器装置)正对先前已设定软件断点的存储位置执行读取访问时,电路300负责提供将置于读取数据总线136上的断点模式来替换微处理器102正期望访问的非易失性存储器106中的数据。断点模式存储在断点模式寄存器202(同样在图3中展示)中,断点模式寄存器202在总线142上发出断点模式至图2所示的多路复用器112。
电路300包括额外的逻辑,其用以过滤用于多个非易失性存储器装置(例如,NVM装置106)的选择信号,同时产生与SBMU 110相关的提供到多路复用器112的选择信号。如果多路复用架构用于读取数据总线,或在任何其它架构中,使用此用于过滤选择信号的额外逻辑,因为数据选择或启用(对于三态总线来说)需要此过滤。
存储于断点I地址寄存器236中的地址和进入的地址总线124被输入到比较器304,比较器304比较信号且产生比较信号306,比较信号306指示地址总线124上的数据是否与关于断点I的位置的地址匹配。非易失性存储器选择信号130和131被提供到“或”门212(与图2中的相同)以产生单个非易失性存储器选择信号214。选择信号214、匹配断点I地址比较信号306、来自微处理器212的读取控制信号312(在读取操作期间其是有效高电平)和来自断点I状态寄存器220的断点I状态寄存器位222作为输入提供到“与”门314。“与”门314产生信号316,信号316指示当前的读取访问是否与断点I地址匹配。
系统100所提供的N个软件断点中的每一者需要使用相同输入信号耦合到“与”门的比较器,此类似于比较器304和“与”门314,且图4中并未展示。通过SBMU 110中其它使用中的断点J的各自的比较器和“与”门将所述其它使用中的断点J的地址与当前的读取访问进行比较。所有所得信号(类似于信号316)中的每一者都指示当前的读取访问是否与软件断点J地址匹配(其中J不同于I),其表示为图4中的总线318并在“或”门320的输入处提供。还在“或”门320的输入处提供断点I信号316,且“或”门产生信号322,信号322指示当前的读取访问是否与软件断点位置匹配,即,是否与当前正由SBMU 110中的调试程序使用的任何断点的地址匹配。
信号322与来自软件断点管理启用状态寄存器262的状态旗标264一起提供到“与”门324的输入,状态旗标264指示断点管理是否启用(寄存器262由于通过微处理器102进行的配置而被设定,或由于测试配置而被设定;断点管理和SBMU 110可被启用或禁用(默认是禁用),使得SBMU的功能性仅在必要时启用)。“与”门324的输出是SBMU数据选择信号143。从SBMU输出选择信号143且还将其输入到产生旗标332的反相器330,旗标332指示正被访问的地址处有(低电平)没有(高电平)设定断点。旗标332用作选择信号140和141的门信号,其中旗标332提供在“与”门334的输入处以及“与”门336的输入处,且选择信号130输入到“与”门334,而选择信号131输入到“与”门336。因此,仅当未在存储软件断点的位置处执行读取访问时,旗标332才用以使所需的存储器选择信号130作为信号140通往NVM装置106(或使信号131作为信号141通往不同的非易失性存储器装置)。这允许NVM装置106提供存储在微处理器所请求的地址处的非断点数据。
由读取数据总线多路复用器112接收和使用SBMU选择信号143,以在执行断点地址的读取访问时促使多路复用器112选择在总线142上从SBMU 110接收到的来自断点模式寄存器的断点模式,而不是选择从NVM装置106接收到的来自总线134的数据(断点模式寄存器202优选一直发出断点模式)。多路复用器112随后在总线136上将断点模式发送到微处理器102,如图2所示。
本发明因此允许使用最小数量的组件来为多个不同的存储器装置设定软件断点。SBMU 110的逻辑能够以一个或一个以上的存储器装置上的系统频率(全速)来管理若干软件断点,而不添加任何高速缓冲存储器或复杂的逻辑。例如,上文在图3到图4中所描述的逻辑可管理N个软件断点,且仅需包括一个能够界定断点模式的可编程寄存器(通过当前使用中的调试程序而编程为其用于断点模式的自身特定值)、一个将写入访问中的数据与断点模式进行比较的比较器206、用于地址存储的N个寄存器、提供断点的使用中状态的N个状态寄存器位220,和将输入地址与地址寄存器中所存储的地址进行比较的N个比较器238。
在替代性实施例中,可以包括额外的组件。例如,在断点可能与数据的缺省大小不同时,可以提供N个寄存器(其中N是断点的数目)来存储除断点地址以外的所写入断点模式的大小。可包括额外的状态寄存器来指示是否已设定SBMU 110能够管理的最大数目的软件断点。同样,管线级可根据系统总线架构的需要而包括在本发明的实施方案中,这是众所周知的。如果使用所述管线级,那么图2中所示的总线和线路可在其等效物在图3或图4中展示之前或之后通过管线级。例如,图2的总线和线路120、124、130、131和126可在如图3和图4所示的组件处接收之前通过同步级(管线级)。
图5是说明在对非易失性存储器(例如,NVM装置16)的写入访问期间用于管理软件断点的本发明方法400的流程图。此过程描述设定或清除软件断点;包括读取先前设定的断点模式的过程将在下文结合图6进行描述。
本方法开始于402,且在步骤404中,SBMU 110接收到来自微处理器102的断点写入访问命令,其通常由源自用户在调试过程中使用的调试程序代理(通常运行于与微处理器分离的装置上)。写入访问通常包括存储器中的地址(在地址总线124上提供),以及待写入到该地址的数据(在写入数据总线126上提供)。尽管是操作过程中无法简单地进行写入或擦除的非易失性存储器装置106,但是调试程序并不了解此事实而假定其可被写入。例如,调试程序可使用JTAG端口通过微处理器将数据直接发送到存储器装置,而无需任何运行于微处理器上的应用程序与存储器进行交流。
在此写入访问下,调试代理可能希望将软件断点指令设定(即,写入)在NVM装置106的特定地址,本文称作“断点地址”。这通常必需使用此断点指令(或“模式”)替换断点地址处的现有原始指令。(在正使用断点时此原始指令可存储在中间存储器位置或寄存器中)。期望将断点模式置放在将在存储于NVM装置106中的正被调试的程序的执行期间被访问的存储器位置,且用户希望中断程序执行以用于调试目的,例如在程序执行中的所要位置处检查变量值或存储器位置,检查输出等。在软件断点的典型设定操作中,在将断点模式写入断点地址之前,微处理器将断点地址处的原始指令拷贝到中间位置。原始指令是正执行(和正调试)的程序的指令中的一者。这个中间位置可位于存储器或其它存储区域中的任何地方。
或者,调试程序可能希望通过用原始指令替换断点模式,来移除或清除通过步骤404中所接收的写入访问而在先前写入的软件断点。
在步骤406中,SBMU 110捕获预期用于NVM装置106的写入访问的地址和数据,且将写入访问的数据部分与SBMU 110存储在其断点模式寄存器中的断点模式进行比较。本文中假定断点模式是唯一的且不类似于任何实际数据。
在步骤408中,检查写入访问的输入数据是否与断点模式相同。如果相同,那么调试程序尝试在写入访问中指定的地址(断点地址)处设定断点。如果是这种情况,那么在步骤410中SBMU 110将写入访问的地址部分存储到内部高速缓冲存储器(例如,图3的实施例中的寄存器236)中,作为被标记的断点地址。所述地址仅存储在为空且仍未保持有使用中的不同软件断点的寄存器中。标记此地址,从而指示此地址处的断点在使用中,且任何其它断点不可存储在此地址处。例如,如同图3的寄存器220的状态寄存器可与地址寄存器202相关联且可将一个位设定成标签。此方法随后在414完成。
如果在步骤408中输入数据不与断点模式匹配,那么方法继续进行到步骤412。假定指示调试程序正尝试通过用原始指令替换写入访问中指定的地址处的断点模式来清除断点;原始指令是写入访问的数据部分。在此情况下,SBMU 110清除(释放)存储与写入访问中的输入地址匹配的断点地址的高速缓冲存储器。例如,在图3的实施例中,断点的清除是由与匹配的地址高速缓冲存储器相关联的清除状态寄存器236来完成的(地址寄存器中的地址无需被清除,且可用另一断点地址进行覆写)。为了使SBMU的逻辑和功能保持简单,且维持系统的兼容性功能,SBMU不检查包括在写入访问中的原始指令(数据本身),而是假定如果调试程序希望将并非断点模式的数据存储在断点地址处,那么所述数据是原始指令。注意,因为在NVM装置106中,原始指令实际上从未被断点模式替换,因此无需将写入访问中所发送的原始指令写入任何存储器中。此过程随后在414处完成。
在所描述的实施例中,SBMU 110可存储N个断点,其中N是小于可编程寄存器的数目的值(需要一个寄存器来对与调试程序相关的使用中的断点模式编程)。如果所有可用的寄存器存储使用中的断点,那么不存储额外的断点。然而,只要软件断点被清除,便可设定新的断点。
图6是说明在程序执行期间用于管理用于非易失性存储器的读取访问的软件断点的本发明的方法450的流程图。此过程描述以下情形:其中微处理器102执行将代码指令存储在NVM装置106中的程序,形成读取断点地址的请求,且将软件断点提供到微处理器。此读取访问发生在运行于微处理器102上的程序的执行期间,且通常不由调试代理起始。如果微处理器检索到其辨识为断点模式的内容,那么其将中断执行,从而允许用户更简单地调试程序。
本方法开始于452,且在步骤454中,SBMU 110接收到预期用于存储在NVM装置106中的数据的读取访问(代码获取)请求。代码获取请求包括图2的地址总线124上提供的处于NVM装置(需要从所述NVM装置检索数据)中的地址。
在步骤456中,SBMU检查获取请求的地址是否与被高速缓冲存储器访问和被标记的地址中的任一者匹配。被标记的地址是用于存储软件断点的那些地址,且软件断点实际上存储于SBMU 110中的高速缓冲存储器(例如寄存器)中,如上文参考图3所描述,而并非存储在NVM装置106中。如果读取访问请求地址不与任何标记的地址匹配,那么所请求的地址不保存断点,且方法继续行进到步骤458,其中SBMU 110允许在NVM装置106中在所请求的地址处执行数据的正常读取访问。在图2的实施例中,SBMU 110可将选择信号140提供到NVM装置106以允许读取操作。所请求地址处的所请求的数据由NVM装置106发送到多路复用器112并通过读取数据总线136发送到微处理器。此方法随后在462处完成。
如果在步骤456获取请求地址与标记的地址匹配,那么微处理器102请求存储有断点的地址,且此过程继续行进到步骤460。在步骤460中,SBMU 110越过(或绕过)对NVM装置106的读取访问,且作为替代,用断点模式来替代NVM装置中的所述地址处的任何数据。将存储在SMBU的寄存器中的断点模式提供到多路复用器112,多路复用器112通过读取数据总线136将所述模式提供到微处理器102。此方法随后在462处完成。
微处理器102执行所接收到的断点模式并执行适当的异常例行程序。在异常例行程序之后,如果需要执行原始指令(其被断点模式替换),那么可由SBMU处理恢复原始指令(和清除断点)的写入访问请求,如上文参考图4所描述。类似地,图4的过程处置用于在NVM装置106中设定断点的写入访问。
应注意,本发明可适用于其它类型的存储器装置,其中所述其它类型的存储器装置可以是易失性的且其难以与软件断点一起使用且不能够用简单的微处理器写入访问进行写入。
尽管已根据所示实施例描述了本发明,但所属领域的技术人员易于认识到,这些实施例可存在变化形式且这些变化形式将在本发明的精神和范畴内。因此,在不脱离所附权利要求书的精神和范畴的情况下,所属领域的技术人员可进行许多修改。
Claims (39)
1.一种用于为存储器提供软件断点的系统,所述系统包含:
微处理器;
存储器装置,可通过耦合到所述微处理器的数据总线和地址总线对其进行访问;以及
处理逻辑,其耦合到所述存储器装置并耦合到所述微处理器,所述处理逻辑可操作以通过用断点模式替代待从所述存储器装置读取的值来设定用于所述存储器装置的所述软件断点,其中代替所述值的所述断点模式在所述数据总线上被发送到所述微处理器。
2.根据权利要求1所述的系统,其进一步包含耦合到所述微处理器的一个或一个以上额外的存储器装置,其中所述处理逻辑使用用于所述存储器装置中的任一者的所述断点模式来替代待读取的值。
3.根据权利要求2所述的系统,其中所述处理逻辑为耦合到所述处理逻辑的每一存储器装置提供选择信号。
4.根据权利要求2所述的系统,其中所述系统包括耦合到所述存储器装置中的每一输出的多路复用器,其中所述多路复用器将所述数据总线上的来自所述存储器装置中的任一者的数据发送到所述微处理器。
5.根据权利要求2所述的系统,其进一步包含系统地址解码器,所述系统地址解码器耦合到所述微处理器且向所述处理逻辑提供选择信号以用于每一存储器装置,其中所述处理逻辑将选择信号发送到所述存储器装置中的每一者。
6.根据权利要求1所述的系统,其中所述存储器装置是非易失性存储器装置。
7.根据权利要求6所述的系统,其中所述非易失性存储器装置是以下装置中的一者:只读存储器(ROM)、电可编程只读存储器(EPROM)、电可擦除只读存储器(EEPROM)和快闪存储器。
8.根据权利要求1所述的系统,其中所述处理逻辑包括存储所述断点模式的专用寄存器。
9.根据权利要求1所述的系统,其中所述处理逻辑包括断点地址寄存器,所述断点地址寄存器存储所述微处理器认为将要存储所述断点模式的所述存储器装置的地址。
10.根据权利要求9所述的系统,其中所述处理逻辑包括断点状态寄存器,所述断点状态寄存器存储指示所述断点地址寄存器中的所述地址是否正用作软件断点的状态。
11根据权利要求1所述的系统,其中所述处理逻辑包括一组专用寄存器以用于由所述处理逻辑存储的每一断点,其中所述处理逻辑存储多个软件断点。
12.一种用于提供用于与存储器装置一起使用的软件断点的方法,所述方法包含:
在所述存储器装置的读取访问中从微处理器接收地址值;以及
用断点模式替代存储在所述存储器装置中的数据值,且将所述断点模式提供到所述微处理器。
13.根据权利要求12所述的方法,其中从包括在处理逻辑中的高速缓冲存储器中检索所述断点模式,其中所述处理逻辑耦合到所述微处理器并耦合到所述存储器装置。
14.根据权利要求12所述的方法,其进一步包含耦合到所述微处理器的一个或一个以上额外的存储器装置,其中用所述断点模式替代来自所述存储器装置中的任一者的值。
15.根据权利要求12所述的方法,其中所述微处理器在存储于所述存储器装置中的程序指令的执行期间请求所述读取访问。
16.根据权利要求15所述的方法,其中在所述微处理器接收到所述断点模式而导致所述程序指令的执行发生中断后强迫发生异常。
17.根据权利要求12所述的方法,其进一步包含将所述地址值与存储在处理逻辑的寄存器中的至少一个断点地址进行比较,其中所述处理逻辑耦合到所述微处理器并耦合到所述存储器装置,其中仅在所述地址值与所述至少一个断点地址匹配时才执行所述数据值的所述替代。
18.根据权利要求17所述的方法,其中如果所述地址值与所述断点地址中的任一者均不匹配,那么将来自所述存储器装置的所述数据值提供到所述微处理器,其中将所述数据值存储在所述存储器装置的等于所述地址值的地址处。
19.根据权利要求12所述的方法,其中所述存储器装置是非易失性存储器装置。
20.根据权利要求19所述的方法,其中所述非易失性存储器装置是以下装置中的一者:只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电可擦除只读存储器(EEPROM)和快闪存储器。
21.根据权利要求13所述的方法,其中所述处理逻辑包括断点地址寄存器,所述断点地址寄存器存储提供到所述微处理器的所述断点模式的地址。
22.根据权利要求21所述的方法,其中所述处理逻辑包括断点状态寄存器,所述断点状态寄存器存储指示所述断点地址寄存器中的所述地址是否正用作软件断点的状态。
23.一种用于为存储器装置提供软件断点的方法,所述方法包含:
在从微处理器到所述存储器装置的写入访问中接收地址和数据;
如果所述数据与断点模式匹配,那么将所述地址存储在断点管理单元中的断点高速缓冲存储器中;以及
如果所述存储的地址与所述接收到的地址匹配,且所述数据与所述断点模式不匹配,那么清除所述断点管理单元的所述断点高速缓冲存储器中所存储的地址。
24.根据权利要求23所述的方法,其中所述将所述地址存储在所述断点高速缓冲存储器中包括:将所述地址存储在多个断点高速缓冲存储器中的一可用的断点高速缓冲存储器中,其中所述可用的断点高速缓冲存储器不存储不同的软件断点地址。
25.根据权利要求23所述的方法,其中所述清除所述存储地址包括:清除所述断点管理单元中的断点状态寄存器。
26.根据权利要求23所述的方法,其中所述清除所述存储地址包括:清除多个断点状态寄存器中的一者,所述被清除的断点状态寄存器与所述接收到的地址相关联。
27.根据权利要求23所述的方法,其中所述存储器装置是耦合到所述微处理器的多个存储器装置中的一者,每一存储器装置可由所述微处理器进行访问。
28.根据权利要求23所述的方法,其进一步包含:
在从所述微处理器到所述存储器装置的读取访问中接收地址;以及
如果所述读取访问中的所述接收到的地址与存储在所述断点管理单元的所述断点高速缓冲存储器中的地址匹配,那么代替所述存储器装置中的数据,而将所述断点模式提供到所述微处理器。
29.根据权利要求28所述的方法,其中从包括在所述断点管理单元中的寄存器中检索所述断点模式。
30.根据权利要求23所述的方法,其中所述存储器装置是非易失性存储器装置。
31.根据权利要求30所述的方法,其中所述非易失性存储器装置是以下装置中的一者:只读存储器(ROM)、电可编程只读存储器(EPROM)、电可擦除只读存储器(EEPROM)和快闪存储器。
32.根据权利要求23所述的方法,其中所述断点管理单元包括断点地址寄存器,所述断点地址寄存器存储提供到所述微处理器的所述断点模式的地址。
33.根据权利要求23所述的方法,其中由期望在所述存储器装置中设定或清除软件断点的调试程序提供所述写入访问中所接收的所述地址和数据。
34.根据权利要求33所述的方法,其中当所述调试程序希望清除所述软件断点时,在所述写入访问中提供的所述数据是曾被所述断点模式替代的原始指令。
35.一种用于为存储器提供软件断点的系统,所述系统包含:
存储器装置,其可由微处理器通过数据总线和地址总线进行访问;以及
处理逻辑,其耦合到所述存储器装置并耦合到所述数据总线和所述地址总线,所述处理逻辑可操作以通过用断点模式替代待从所述存储器装置读取的值来设定用于所述存储器装置的所述软件断点,其中代替所述值的所述断点模式在所述数据总线上被发送到所述微处理器。
36.根据权利要求35所述的系统,其进一步包含耦合到所述微处理器的一个或一个以上额外的存储器装置,其中所述处理逻辑使用用于所述存储器装置中的任一者的所述断点模式来替代待读取的值。
37.根据权利要求36所述的系统,其进一步包含系统地址解码器,所述系统地址解码器耦合到所述微处理器且向所述处理逻辑提供选择信号以用于每一存储器装置,其中所述处理逻辑将选择信号发送到所述存储器装置中的每一者。
38.根据权利要求35所述的系统,其中所述存储器装置是非易失性存储器装置。
39.根据权利要求35所述的系统,其中所述处理逻辑包括一组专用寄存器以用于由所述处理逻辑存储的每一断点,其中所述处理逻辑存储多个软件断点。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0500533A FR2880963B3 (fr) | 2005-01-19 | 2005-01-19 | Points d'arrets logiciels destines a etre utilises avec des dispositifs a memoire |
FR05/00533 | 2005-01-19 | ||
US11/193,817 | 2005-07-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101410807A true CN101410807A (zh) | 2009-04-15 |
Family
ID=36636856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006800024777A Pending CN101410807A (zh) | 2005-01-19 | 2006-01-18 | 用于与存储器装置一起使用的软件断点 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20060174163A1 (zh) |
CN (1) | CN101410807A (zh) |
FR (1) | FR2880963B3 (zh) |
TW (1) | TW200636585A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102117243A (zh) * | 2010-12-29 | 2011-07-06 | 杭州晟元芯片技术有限公司 | 一种在Flash存储器中高效的使用软件断点调试的方法 |
CN110431536A (zh) * | 2017-03-20 | 2019-11-08 | 微软技术许可有限责任公司 | 实现整个数据结构上的断点 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040186622A1 (en) * | 2001-07-12 | 2004-09-23 | Takashi Aiuchi | Wafer processing apparatus and transfer device adjustment system |
KR100735552B1 (ko) * | 2005-09-23 | 2007-07-04 | 삼성전자주식회사 | 코드 메모리 상의 프로그램의 코드 크기를 줄이는 방법 |
US8010774B2 (en) * | 2006-03-13 | 2011-08-30 | Arm Limited | Breakpointing on register access events or I/O port access events |
US7895569B2 (en) | 2006-08-30 | 2011-02-22 | Research In Motion Limited | System and method for implementing software breakpoints in an interpreter |
US8090935B2 (en) * | 2008-01-24 | 2012-01-03 | Mentor Graphics Corporation | Direct register access for host simulation |
CN102096629B (zh) | 2009-12-14 | 2013-09-25 | 华为技术有限公司 | 经过性断点设置、调试方法和装置 |
WO2012069872A1 (en) * | 2010-11-22 | 2012-05-31 | Freescale Semiconductor, Inc. | Method for setting breakpoints, and an integrated circuit and debug tool therefor |
CN104461859B (zh) * | 2014-08-27 | 2017-07-11 | 北京中电华大电子设计有限责任公司 | 一种支持nvm软断点调试的仿真器和方法 |
US9619368B2 (en) | 2015-01-29 | 2017-04-11 | Nxp Usa, Inc. | Method of testing software |
FR3103586B1 (fr) | 2019-11-22 | 2023-04-14 | St Microelectronics Alps Sas | Procédé de gestion du fonctionnement d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant |
FR3103585B1 (fr) | 2019-11-22 | 2023-04-14 | Stmicroelectronics Grand Ouest Sas | Procédé de gestion de la configuration d’accès à des périphériques et à leurs ressources associées d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant |
FR3103584B1 (fr) * | 2019-11-22 | 2023-05-05 | St Microelectronics Alps Sas | Procédé de gestion du débogage d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CS164932B2 (zh) * | 1971-09-07 | 1975-11-28 | ||
US4435752A (en) * | 1973-11-07 | 1984-03-06 | Texas Instruments Incorporated | Allocation of rotating memory device storage locations |
DE69033262T2 (de) * | 1989-04-13 | 2000-02-24 | Sandisk Corp., Santa Clara | EEPROM-Karte mit Austauch von fehlerhaften Speicherzellen und Zwischenspeicher |
US5941980A (en) * | 1996-08-05 | 1999-08-24 | Industrial Technology Research Institute | Apparatus and method for parallel decoding of variable-length instructions in a superscalar pipelined data processing system |
US20030054463A1 (en) * | 1997-10-24 | 2003-03-20 | Genentech, Inc. | Secreted and transmembrane polypeptides and nucleic acids encoding the same |
US6016555A (en) * | 1997-11-19 | 2000-01-18 | Texas Instruments Incorporated | Non-intrusive software breakpoints in a processor instruction execution pipeline |
US6915416B2 (en) * | 2000-12-28 | 2005-07-05 | Texas Instruments Incorporated | Apparatus and method for microcontroller debugging |
US6990657B2 (en) * | 2001-01-24 | 2006-01-24 | Texas Instruments Incorporated | Shared software breakpoints in a shared memory system |
US7055140B2 (en) * | 2002-05-01 | 2006-05-30 | Seiko Epson Corporation | Software breakpoints implementation via specially named function |
EP1378833A1 (en) * | 2002-07-04 | 2004-01-07 | Sap Ag | Dynamic breakpoints for computer software |
US9003376B2 (en) * | 2002-08-09 | 2015-04-07 | Texas Instruments Incorporated | Software breakpoints with tailoring for multiple processor shared memory or multiple thread systems |
US20040040013A1 (en) * | 2002-08-26 | 2004-02-26 | Mohit Kalra | Time-based breakpoints in debuggers |
US7296259B2 (en) * | 2002-09-11 | 2007-11-13 | Agere Systems Inc. | Processor system with cache-based software breakpoints |
-
2005
- 2005-01-19 FR FR0500533A patent/FR2880963B3/fr not_active Expired - Fee Related
- 2005-07-28 US US11/193,817 patent/US20060174163A1/en not_active Abandoned
-
2006
- 2006-01-18 CN CNA2006800024777A patent/CN101410807A/zh active Pending
- 2006-01-19 TW TW095102019A patent/TW200636585A/zh unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102117243A (zh) * | 2010-12-29 | 2011-07-06 | 杭州晟元芯片技术有限公司 | 一种在Flash存储器中高效的使用软件断点调试的方法 |
CN110431536A (zh) * | 2017-03-20 | 2019-11-08 | 微软技术许可有限责任公司 | 实现整个数据结构上的断点 |
Also Published As
Publication number | Publication date |
---|---|
FR2880963B3 (fr) | 2007-04-20 |
FR2880963A1 (fr) | 2006-07-21 |
US20060174163A1 (en) | 2006-08-03 |
TW200636585A (en) | 2006-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101410807A (zh) | 用于与存储器装置一起使用的软件断点 | |
EP3511826B1 (en) | System boot code clone | |
US7050859B1 (en) | Systems and methods to port controller state and context in an open operating system | |
US6463550B1 (en) | Computer system implementing fault detection and isolation using unique identification codes stored in non-volatile memory | |
US7131114B2 (en) | Debugger breakpoint management in a multicore DSP device having shared program memory | |
US20170004063A1 (en) | Flash memory controller, data processing system with flash memory controller and method of operating a flash memory controller | |
US8452937B2 (en) | Moving executable code from a first region of a non-volatile memory to a second region of the non-volatile memory to reduce read disturb | |
US7523346B2 (en) | Systems and methods for CPU repair | |
US20010042225A1 (en) | Computer system implementing fault detection and isolation using unique identification codes stored in non-volatile memory | |
US6587916B2 (en) | Microcomputer with built-in programmable nonvolatile memory | |
JP2009517742A (ja) | マイクロコントローラに基づくフラッシュメモリデジタルコントローラシステムのためのコマンドデコーダ | |
JP2000509875A (ja) | 不揮発性メモリ・システム内でのプログラミング電圧保護 | |
CN101233495A (zh) | 用于在具有快闪程序存储器的微控制器中提供程序断点的机制 | |
US7607038B2 (en) | Systems and methods for CPU repair | |
CN110765032A (zh) | 基于系统管理总线接口对i2c存储器进行读写的方法 | |
CN100585554C (zh) | 经由私有操作访问控制寄存器的系统和方法 | |
CN100421099C (zh) | 集成电路及其配置方法及加载配置资料时的错误恢复方法 | |
DE102008005863A1 (de) | Verfahren zum Reparieren eines Halbleiterspeicherbauelements und Halbleiterspeicherbauelement | |
CN1333357C (zh) | 具有非易失性配置储存装置的内电路配置结构 | |
US20170262195A1 (en) | Semiconductor device | |
US7694175B2 (en) | Methods and systems for conducting processor health-checks | |
US7673171B2 (en) | Systems and methods for CPU repair | |
US7533293B2 (en) | Systems and methods for CPU repair | |
CN209746537U (zh) | 一种兼容nvdimm-p功能的nvdimm-n | |
US8661289B2 (en) | Systems and methods for CPU repair |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090415 |