用于多任务系统的存储器保护系统的制作方法

文档序号:6415945阅读:212来源:国知局
专利名称:用于多任务系统的存储器保护系统的制作方法
技术领域
本发明涉及一种用于多任务系统的存储器保护系统。更具体来说,本发明涉及一种防止一个应用程序向存储第二个应用程序的数据的存储器分段进行写操作的系统。本发明的存储器保护系统也检测一个应用程序何时企图向第二个应用程序的存储器分段进行写操作。
多任务系统在计算机领域是普遍为人知晓的。在多任务系统中,多个应用程序被一个处理器并行地执行。多任务系统的优点是,一个处理器能同时执行多个功能,使执行多个功能所需的资源最小化。
典型的多任务系统需要一个处理器、一个与处理器相关联的存储器、一个调度对应用程序的处理和管理对存储器的数据读写的操作系统。系统运行多个应用程序。每个应用程序由处理器执行预定的一段时间。执行应用程序所产生的结果被写到存储器,存储起来供将来使用。处理器在以后的某个时候用该被存储数据恢复执行应用程序。多任务系统中可以包括一个存储器保护方案,以防止第一个应用程序覆写第二个应用程序的数据。不然的话,应用程序之一或二者的数据就会出错,应用程序将失败。
多任务系统的例子是在个人电脑上运行的Windows操作系统。在Windows操作系统中,每个打开的视窗都是当前由系统运行的一个不同的软件应用程序。操作系统调度每个应用程序在中央处理器上的处理时间,中央处理器以预定的时间量执行每个应用程序。结果数据被存储在随机存取存储器(RAM)中供将来使用。在Windows系统中,操作系统有一个存储器管理方案来防止一个应用程序将数据写到RAM中存储着第二个应用程序的数据的位置。
可以用微处理器来运行规模较小的多任务系统。规模较小的多任务系统的例子是微处理器并行执行若干监测流经流量计的液体的不同特性的应用程序。这种多任务系统的操作系统一般局限于能执行关键的系统操作,原因是微处理器的功能有限。在这些规模较小的系统中,一般将与处理器关联的存储器划分为若干分段。每个存储器分段存储一个应用程序的数据,以简化操作系统所要求的存储管理。问题是如何防止一个应用程序将数据写到存储第二个应用程序的数据的存储器分段。
为了解决这个问题,有些微处理器提供内部或外部存储器保护功能来防止应用程序将数据写到位于其被分配的存储器分段以外的地址。然而,具有存储器保护特征功能的微处理器一般很贵,具有比较简单的微处理器更为复杂的电路。由于费用和设计方面的原因,人们可能希望使用价格更便宜的、没有存储器保护系统的微处理器。因此,在该领域需要一种费用不高、实现简单的方案,用没有存储器保护特征功能的微处理器提供对多任务系统的存储器保护。
本发明涉及用于处理器控制的多任务系统的存储器保护系统,它能解决以上和其它问题并取得在该领域的进步。按照本发明方法,用由处理器执行的软件与和处理器的外部电路的组合来提供一种存储器保护系统。本发明提供了一种相对来说实现简单、费用不高的存储器保护系统,用于不含内部存储器保护功能的处理器。
多任务系统包含一个微处理器、一个与微处理器关联的存储器和一个操作系统。存储器中的各位置由n个低位地址位和m个高位地址位来定义。存储器被划分为若干存储器分段,每个分段都由m个高位地址位的唯一组合来定义。由处理器执行的每个应用程序被分配一个存储器分段,存储该应用程序的数据。操作系统管理由处理器对应用程序的执行。
按照本发明,存储器保护系统包括一个存储器地址寄存器、一个从存储器寄存器扩展到存储器的高位地址总线、一个从处理器扩展到存储器的低位地址总线、错误检测电路。存储器寄存器存储m位。在应用程序被处理器执行之前,将代表应用程序的存储器分段的m个高位地址位写到存储器寄存器。在应用程序正在执行期间,通过高位地址总线将在存储器寄存器中存储的m个高位地址位传输到存储器。从存储器寄存器传输m个高位地址位,能防止应用程序将数据写到位于其被分配的存储器分段以外的地址。
各应用程序被编译,生成读/写操作的地址,地址有被设置等于某常数的m个高位地址位(例如全为0)和n个低位地址位。这m个高位地址位用于错误检测,而n个低位地址位则指示在分配给应用程序的存储器分段中的一个存储位置。
由应用程序生成的n个低位地址位通过低位地址总线被传输到存储器。n个低位地址位与存储器寄存器中的m个高位地址位的组合,指定了在分配给应用程序的存储器分段中的一个存储位置。所生成的地址用于执行读/写操作。
尽管存储器寄存器中的m个高位地址位能防止选定的应用程序在其被分配的存储器分段的范围以外进行读/写,在一定条件下,选定的应用程序也会试图在其被分配的存储器分段的范围以外进行读/写。这种条件有一个就是堆栈溢出错误。在发生堆栈溢出错误时,应用程序需要存储超过其存储器分段的容量的数据。为了存储数据,应用程序生成不等于该常量的m个高位地址位,试图将数据写到在应用程序被分配的存储器分段的范围以外的地址。然而,存储器寄存器中的m个高位地址位与所生成的n个低位地址位的组合应当是应用程序被分配的存储器分段中一个含有有效数据的地址。如果继续读/写操作,选定应用程序的有效数据就将出错。
为了防止在应用程序被分配的存储器分段中的有效数据的出错,错误检测电路要判断应用程序所生成的m个高位地址位是否等于该常量。如果所生成的m个高位地址位不等于该常量,本发明就生成一个出错信号。根据该出错信号就能停止读/写操作,或者由该出错信号导致一个出错中断。
存储器寄存器中的错误,可以由操作系统在应用程序的执行完成之后检测。操作系统读取存储器寄存器中的m个高位地址位。将存储器寄存器中的m个高位地址位与定义已完成的应用程序的存储器分段的m个高位地址位作比较。如果已完成的应用程序的m个高位地址位不等于该存储器寄存器,操作系统就生成一个出错中断。这个检测是要保证数据没有因为存储器寄存器中的错误而产生错误。


图1是一个具有本发明的存储器保护特征功能的处理器控制的多任务系统的可能的典型最佳实施例的框图;图2是一个具有本发明的存储器保护特征功能的处理器控制的多任务系统的备选的典型实施例的框图;图3是多任务系统中划分成若干分段的存储器的框图4是图1的典型最佳实施例的操作概括的流程图;图5是典型最佳实施例中准备执行应用程序的过程的流程图;图6是典型最佳实施例中在执行应用程序期间执行一个读/写操作的过程的流程图;图7是典型最佳实施例中判断应用程序是否生成了无效地址的过程的流程图;图8是典型最佳实施例中在应用程序的执行之后检测存储器寄存器中存储的m个高位地址位的变化的过程的流程图。
图1是一个具有本发明的存储器保护特征功能的处理器控制的多任务系统100的典型最佳实施例。处理器101为多个应用程序执行指令。指令存储在只读存储器(ROM)150中。处理器101通过由总线151与ROM150相连的数据总线104,从ROM150接受指令。处理器101有一个关联的存储器,例如RAM120,用于存储执行这多个应用程序的每个应用程序所需要的数据。RAM120中的各地址由m个高位地址位和n个低位地址位来定义。在最佳实施例中,RAM120是个64KB的存储器,不过本发明可以调整到用于任意大小的存储器。
存储器寄存器102存储m位,它由m通道112~114与多路转换器130相连。在最佳实施例中,存储器寄存器102是处理器101的内部器件。然而,存储器寄存器102可以是处理器101的外部器件。存储器寄存器102在通路115上传播一个保护信号,指示是否有应用程序或操作系统正在执行。在最佳实施例中,当操作系统正在执行时,保护信号在通路115上是高电平或1。当应用程序正在执行时,保护信号在通路115上是低电平或0。在最佳实施例中,通路115上保护信号确定了多路转换器130通过哪个通道连接到RAM120。当操作系统正在执行时,高电平的保护信号关闭出错检测电路,以防止生成出错信号。
当通路115上的保护信号是低电平时,多路转换器130将存储器寄存器102出发的m个通路112~114分别连接到m个高位地址线122~124。当通路115上的保护信号是高电平时,多路转换器130将总线105出发的m个通路106~108连接到m个高位地址线122~124。总线105与地址总线121分离,作用是通过通道106~108将m个高位地址位从处理器101直接提供给多路转换器130。m个通道109~111从总线105接收m个高位地址位,将这m个高位地址位应用到多任务系统100的出错检测电路。
数据总线104连接处理器101与RAM120,以便在处理器处理器101与RAM120之间传输数据。由RAM120进行的数据操作的类型,是由经读/写通道103从处理器101传送到RAM120的读/写信号确定的。地址的n个低位地址位是由处理器101在低位地址总线121上传送给RAM120的。m个地址线122~124所代表的高位地址总线从多路转换器130向RAM120提供m高位地址位。在最佳实施例中,低位地址总线121携带地址的13个低位地址位,高位地址总线则携带64KB存储器的16位地址的3个高位地址位。然而,n个低位地址位和m个高位地址位的数目,是可以结合不同的设计参数而改变的。
出错检测电路检测由处理器101正在执行的应用程序在其被分配的存储器分段的范围之外读/写数据的企图。如果应用程序确实试图在其被分配的存储器分段的范围之外读/写,出错检测电路就生成出错信号。出错信号的生成,要么关闭正在执行的操作,要么被传送到处理器101,后者产生一个出错中断,以防止应用程序完成该读/写操作。
对软件应用程序的编译所生成的读/写操作的存储器地址中,有m个高位地址位,它们等于一个常量。出错检测电路判断m个高位地址位是否等于该常量。当m个高位地址位不等于该常量时,该电路就生成一个出错信号。
在最佳实施例中,由应用程序生成的m个高位地址位每个的常量都是0。出错检测电路要检测这m位中何时有的位的值是1。出错检测电路包括或门131、133和135,锁存器132,反相器134。或门131通过通道109~111从处理器101接收m个高位地址位,并在通道140上施加一个信号。锁存器132通过通道140从或门131接收该信号,并通过通道141接收来自处理器101的地址有效信号。如果应用程序已经生成了一个存储器地址,处理器101就向锁存器141发送一个地址有效信号。锁存器132通过通道142向或门133传播一个信号。或门133通过通道115接收保护信号并通过通道142接收来自锁存器132的信号。或门133的输出信号在通道143上被传播给处理器101。通道147与通道143分离,将或门133发出的信号施加到反相器134。反转后的信号在通道146上被传播到或门135。或门135接收通道146上的信号和通道144上的芯片选择信号。或门135产生的信号在通道145上被施加到RAM120。
如果应用程序生成了无效地址,出错检测电路就以下面的方式操作。或门131从m个通道109~111接收信号。所接收的信号至少有一个是表示1的高电平,将高电平信号在通道140上施加到锁存器132。通过通道140接收的高电平选通锁存器132在通道142上施加低电平信号。或门133接收通道115上的来自处理器101的低电平保护信号和通道142上的来自锁存器的低电平信号。保护信号115是低电平的,表示有应用程序正在被处理器101执行。该低电平信号被或门133与低电平的锁存器信号进行逻辑“或”运算。产生的低电平信号作为低电平的出错信号在通道143上被传播到处理器101。通道147与通道143分离,将该低电平信号施加到反相器134。反相器134发出的高电平信号被施加到或门135。或门135通过通道144接收一个导致要完成读/写操作的低电平的芯片选择信号。或门135将该低电平芯片选择信号与该高电平信号进行逻辑“或”运算。通过通路145将高电平信号传播到RAM120。该高电平信号能防止该读/写操作的完成。
如果应用程序生成的地址中没有发生错误,出错检测电路就以下列方式操作。或门131从m个通道109~111接收信号。所接收的信号都是低电平的,将一个低电平信号在通道140上施加到锁存器132。让锁存器132通过通道141接收一个来自处理器101的高电平的地址有效信号,使其输出一个高电平信号。低电平信号是在通道140上接收的,它导致通道142上的信号保持高电平,表示所生成的地址中没有错误。或门133接收通道115上来自处理器101的低电平保护信号和通道142上来自锁存器132的高电平信号。该低电平保护信号115和来自通道142的该高电平锁存器信号被或门133进行逻辑“或”运算。生成的高电平信号在通道143上被传播到处理器101,指示该地址是有效的。通道147与通道143分离,将该高电平信号施加到反相器134。反相器134发出的低电平信号被施加到或门135。或门135通过通道144接收一个导致要完成读/写操作的低电平的芯片选择信号。或门135将该低电平芯片选择信号与该低电平信号进行逻辑“或”运算。生成的低电平信号通过通路145被传播到RAM120。该低电平信号允许完成该读/写操作。
图2表示本发明一个备选的典型实施例。多任务系统200由与多任务系统100的部件相同的部件组成,除此之外,在出错检测电路中或门131之前的位置,增加了一个定义大于比较器的逻辑单元202和一个定义小于比较器的逻辑单元203。总线105向出错检测电路传播至少m个高位地址位。也可以将n个低位地址位的全部或任意部分传播到出错检测电路。大于比较器202接收通道210上的至少m个高位地址位,小于比较器203接收通道211上的至少m个高位地址位存储器寄存器102发出的m个高位地址位在总线213上被传播到出错检测电路。大于比较器202通过通道214从总线213接收这m个高位地址位,小于比较器203则通过通道215从总线213接收这m个高位地址位。大于比较器202通过通道205向或门131施加信号,而小于比较器203则通过通道206向或门131施加信号。
在该备选实施例中,由应用程序生成的每个地址的m个高位地址位,都等于定义存储该应用程序的数据的存储器分段的m个高位地址位的唯一组合。在备选实施例中,能生成三类地址,一种是小于应用程序存储器分段中最低地址的地址,一种是位于应用程序存储器分段内的地址,一种是大于应用程序存储器分段中最高地址的地址。当所生成的地址大于应用程序存储器分段中最高地址或者小于应用程序存储器分段中最低地址时,发生错误。
当生成的地址小于存储器分段的最低地址时,出错检测电路以下列方式操作。所生成的m个高位地址位由大于比较器202通过通道210接收。来自存储器寄存器102的m个高位地址位由大于比较器202通过通道214接收。大于比较器202将所生成的m个高位地址位与来自存储器寄存器102的m个高位地址位进行比较。所生成的m个高位地址位小于存储器寄存器的m个高位地址位,于是就在通道205上向或门131传输一个低电平信号。该低电平信号指示,所生成的m个高位地址位小于存储器分段的最高地址,可能是有效地址。所生成的m个高位地址位由小于比较器203通过通道211接收。来自存储器寄存器102的m个高位地址位也由小于比较器203通过通道215接收。小于比较器203将所生成的m个高位地址位与来自存储器寄存器102的m个高位地址位进行比较。所生成的m个高位地址位小于存储器寄存器的m个高位地址位,于是就在通道206上向或门131传输一个高电平信号。该高电平信号指示,所生成的m个高位地址位小于存储器分段的最低地址,是无效地址。通道205的高电平信号与通道204的低电平信号被或门131进行逻辑“或”运算。产生的高电平信号在通道140上传播,出错检测电路的其余部分如图1中所述的那样完成针对出错的操作。
当生成的地址大于存储器分段的最高地址时,出错检测电路以下列方式操作。所生成的m个高位地址位由大于比较器202通过通道210接收。来自存储器寄存器102的m个高位地址位由大于比较器202通过通道214接收。大于比较器202将所生成的m个高位地址位与来自存储器寄存器102的m个高位地址位进行比较。所生成的m个高位地址位大于存储器寄存器的m个高位地址位,于是在通道205上向或门131传输一个高电平信号。该高电平信号指示,所生成的m个高位地址位大于存储器分段的最高地址,是无效地址。所生成的m个高位地址位也由小于比较器203通过通道211接收。来自存储器寄存器102的m个高位地址位由小于比较器203通过通道215接收。小于比较器203将所生成的m个高位地址位与来自存储器寄存器102的m个高位地址位进行比较。所生成的m个高位地址位大于存储器寄存器的m个高位地址位,于是就在通道206上向或门131传输一个低电平信号。该低电平信号指示,所生成的m个高位地址位大于存储器分段的最低地址。将通道205的高电平信号与通道206的低电平信号进行逻辑“或”运算。产生的高电平信号在通道140上传播,出错检测电路的其余部分如图1中所述的那样完成针对出错的操作。
当生成的地址大于存储器分段的最低地址并且小于存储器分段的最高地址时,出错检测电路以下列方式操作。所生成的m个高位地址位由大于比较器202通过通道210接收。来自存储器寄存器102的m个高位地址位由大于比较器202通过通道214接收。大于比较器202将所生成的m个高位地址位与来自存储器寄存器102的m个高位地址位进行比较。所生成的m个高位地址位小于存储器寄存器的m个高位地址位,于是就在通道205上向或门131传输一个低电平信号。该低电平信号指示,所生成的m个高位地址位小于存储器分段的最高地址,可能是有效地址。所生成的m个高位地址位也由小于比较器203通过通道211接收。来自存储器寄存器102的m个高位地址位由小于比较器203通过通道215接收。小于比较器203将所生成的m个高位地址位与来自存储器寄存器102的m个高位地址位进行比较。所生成的m个高位地址位小于存储器寄存器的m个高位地址位,于是就在通道206上向或门131传输一个低电平信号。该低电平信号指示,所生成的m个高位地址位大于存储器分段的最低地址,可能是有效地址。将通道205的低电平信号与通道204的低电平信号进行逻辑“或”运算。产生的低电平信号在通道140上传播,出错检测电路的其余部分如图1中所述的那样完成针对出错的操作。
图3表示被划分成若干分段300~307的RAM120。分段200~307每个都由m个高位地址位的一个唯一组合来定义。m个位的位数是由存储器中的分段的数目确定的。例如,RAM120容量是64KB,被划分成8个分段。m等于3,每个分段都由3个高位的唯一组合来定义。在本例中,分段300~307的高位3位分别是000、001、010、011、100、101、110和111。
多任务系统100运行一个操作系统和若干由处理器101执行的应用程序A~G。各个应用程序A~G以及操作系统都在RAM120的分段300~307之一中存储数据,如图3中所示。本发明要求,每个应用程序被编译时,生成的数据操作的地址的m个高位地址位要被设置为常数。例如,在最佳实施例中,应用程序A~G生成的地址中的m个高位地址位全为0。本发明中的操作系统调度对本发明中的应用程序A~G的执行,能访问整个存储器,以便在应用程序之间传输数据。
图4表示的是按照本发明的、具有存储器保护特征功能的多任务系统的操作概述。过程400从步骤401开始,操作系统初始化系统,以执行其中一个应用程序A~G。在步骤402中,由处理器101执行一个选定的应用程序,例如应用程序A。在步骤403中,操作系统验证存储器寄存器102中的m个高位地址位等于应用程序A的m个高位地址位。处理器101每次执行一个应用程序A~G时,都要重复执行过程400。
操作系统在步骤401中执行的对多任务系统100的初始化,由图5中的过程500表示。首先,操作系统在步骤501中选择一个要执行的应用程序,例如应用程序A。在步骤502,由操作系统将分配给应用程序A去存储数据的存储器分段的m个高位地址位写到存储器寄存器102。在步骤503,将保护信号设置为低电平,以表示应用程序A正在由处理器101执行。过程500然后返回到图4的过程400的步骤401。
图6是表示在过程400的步骤402中执行应用程序A的过程600。过程600在步骤601以应用程序A的执行为开始。在步骤602,应用程序A必须执行一个对RAM120的读/写操作。所生成的地址具有被设置成常数的m个高位地址位。在最佳实施例中,m个高位地址位每个都是0。在步骤604中,将所生成的n个低位地址位经低位地址总线121传输到RAM120。读/写操作的地址的m个高位由存储器寄存器102通过通道122~124所代表的高位地址总线接收。
在步骤605中,步骤603中生成的m个高位地址位由处理器101通过总线105和通道109~111传输到出错检测电路。出错检测电路判断所生成的是否是无效地址。读/写操作在步骤606中完成。过程600在步骤607完成,该步骤判断应用程序的执行是否完成。如果应用程序的完成没有完成,步骤607就从步骤601开始重复过程600。如果执行结束,过程600就返回到图4的过程400的步骤402。
出错检测电路在步骤605接收m个高位地址位并完成图7中所示的过程700。过程700保护在为过程600中正在执行的应用程序存储数据的存储器分段中的数据。存储器寄存器102传输正在执行的应用程序的存储器分段专有的m个位,以防止有应用程序在其存储器分段范围以外写数据。在一定条件下,例如发生堆栈溢出错误时,应用程序会试图生成在其存储器分段范围以外的地址。然而,该无效地址的n个位与存储器寄存器102的m个位的组合,产生的是一个在应用程序的存储器分段内部的、可能含有有效数据的地址。出错检测电路必须检测出任何无效地址并禁止该数据操作,以防止应用程序的存储器分段内的有效数据出错。
过程700以步骤701开始,该步骤判断n个高位是否等于该常数。在最佳实施例中,应用程序所生成的m个位各为0,出错检测电路检测不等于0的位。如果该m个位等于该常数,过程700就返回图6所示的过程600的步骤605。如果该m个高位地址位不等于该常数,过程700就在步骤702生成一个出错信号。根据该出错信号,步骤703关闭芯片选择信号,以停止该读/写操作,防止应用程序的存储器分段内的数据出错。在最佳实施例中,步骤701~703是由上文在图1中所述的出错检测电路执行的。
在图7的步骤704中,步骤702中生成的出错信号被传输到处理器101。在步骤706,处理器101接收出错信号后的响应是,要么产生一个出错中断,要么设置一个出错标志。处理器101的如何响应,是由操作系统决定的,是本发明的设计者的一种设计选择。步骤703和704的错误恢复不予讨论,因为错误恢复是本发明范围以外的事情。
图8表示在过程400的步骤403中由操作系统执行的出错检测过程800。首先,在步骤801将保护信号设置为高电平,表示操作系统正在被执行。在步骤802,存储器寄存器102被操作系统读取。在步骤802,由操作系统将从存储器寄存器102读取的m个高位地址位与已经完成的应用程序的存储器分段的m个高位地址位进行比较。如果相比较的m个高位地址位不相等,就由操作系统在步骤802生成一个出错信号。否则,过程800就返回到图4的过程400的步骤403。
本发明涉及在多任务系统中提供存储器保护。尽管本文举例说明了特定的实施例,可以预期,本领域的技术人员将能在以下权利要求一无论是明确提出的或是依据等同物原则(Doctrine of Equivalents)-的范围内设计出可替代的存储器保护系统。
权利要求
1.一种用于防止在与执行若干应用程序(A-G)的处理器(101)相连的存储器(120)中存储的数据出错的存储器保护系统,其中,该若干应用程序(A-G)每个都在存储器(120)的由m个高位地址位(0000h-FFFFh)的唯一组合所标识的若干分段(300-307)之一中存储数据,该系统具有的特征为一个存储器寄存器(102),它接收并存储标识该若干分段(300-307)中存储着当前正被处理器(101)执行的一个应用程序(A-G)的数据的一个分段的m个高位地址位的唯一组合;一个低位地址总线(121),它将由处理器(101)生成的n个低位地址位传输给存储器(120);一个多路转换器(130),它根据表示应用程序正在被处理器(101)执行的第一种信号而有选择地传输来自存储器寄存器(102)的m个高位地址位,并且根据接收的表示操作系统正在被处理器(101)执行的第二种信号而有选择地传输由处理器(101)生成的m个高位地址位;一个检测电路(1 32),它检测处理器(101)为进行所述数据传输而生成的地址中的错误并根据检测到的错误而生成出错信号。
2.权利要求1的系统(100),进一步具有的特征为禁止电路(134-135),它根据所生成的出错信号来禁止所述的数据传输。
3.权利要求1的系统(100),其中,所述出错信号从所述检测电路(132)被传输到所述处理器(101),后者根据接收的出错信号而执行一个出错中断。
4.权利要求1的系统(100),其中,所述检测电路(132)具有的特征为比较电路(131),它将由所述处理器(101)在执行一个所述应用程序期间所生成的m个高位地址位与标识存储器中若干分段中存储当前正在执行的应用程序的数据的一个分段的m个高位地址位进行比较。
5.权利要求4的系统(200),其中,所述比较电路(202、203和131)从所述存储器寄存器(102)接收所述m个高位地址位。
6.权利要求5的系统(200),其中,所述比较电路(131)在操作系统被执行时关闭。
7.一种用于防止在与处理器(101)相连的存储器(120)的若干分段(300-307)中存储的数据出错的方法(400),其中,该若干分段每个都由m个高位地址位(0000h-FFFFh)的唯一组合所标识,并存储该若干应用程序(A-G)中一个正在被处理器执行的不同应用程序的数据,该方法的特征在于有以下步骤接收(603)为若干应用程序中当前正被执行的一个应用程序生成的m个高位地址位;在存储器寄存器中存储(502)所接收的m个高位地址位;响应为当前正被执行的若干应用程序(A-G)之一执行数据传输的处理器(101)而从存储器寄存器向存储器传输m个高位地址位;将由所述处理器(101)为数据传输而生成的n个低位地址位传输(604)到所述存储器(120)。检测(700)由处理器(101)为数据传输而生成的地址中的错误;和根据检测到的错误而生成(702)一个出错信号。
8.权利要求7的方法(400),进一步的特征在于有以下步骤根据所生成的出错信号禁止(703)所述的数据传输。
9.权利要求7的方法(400),进一步的特征在于有以下步骤将出错信号传输(704)到所述处理器(101)。
10.权利要求9的方法(400),进一步的特征在于有以下步骤根据接收的出错信号在处理器(101)中生成一个出错中断。
11.权利要求7的方法(400),其中,检测(700)错误的步骤包含的步骤为比较(701)由所述处理器为数据传输而生成的m个高位地址位和标识存储当前被执行的若干应用程序之一的数据的若干分段之一的所述m个高位地址位。
12.权利要求11的方法(400),其中,检测(700)步骤的进一步特征在于有以下步骤从存储所述m个高位地址位的存储器寄存器(102)接收m个高位地址位。
13.权利要求7的方法(400),进一步的特征在于有以下步骤响应操作系统的执行,传输由所述处理器(101)生成的m个高位地址位。
14.权利要求13的方法(400),进一步的特征在于有以下步骤响应操作系统的执行,关闭所述错误检测。
全文摘要
一种用于在多任务系统中防止当前正在运行的应用程序向存储着第二个应用程序的数据的存储器分段写数据的存储器保护系统。该存储器保护系统将定义当前正在运行的应用程序的存储器分段的m位高位地址从存储器寄存器传输到存储器。存储器保护系统检测到当前正在运行的应用程序生成无效地址时,就禁止该数据操作,以防止在存储着当前运行的应用程序的数据的存储器分段中的数据出错。系统在应用程序完成之后验证存储器寄存器中的m个高位地址位等于该完成了的应用程序的存储器分段的m个高位地址位。
文档编号G06F12/14GK1282430SQ98812274
公开日2001年1月31日 申请日期1998年12月7日 优先权日1997年12月16日
发明者A·L·萨姆森, T·C·格林 申请人:微动公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1