本发明是关于一种用于有一个硬件区域和一个软件区域的存储器的存取控制系统。 近年来,已经实现了一种数据处理系统,在这种数据处理系统中,一个存储器,例如主存储器不仅有一个软件区域(以下简称为“SA”)用于存储普通程序,述有一个硬件区域(以下简称“HA”)只能由硬件使用,普通程序不能进入该硬件区域。通常,SA包括边界地址以下的地址,而HA包括边界地址以上的地址。普通程序存储在SA中,而由数据处理系统硬件使用的信息(即硬件信息)则存储在HA中。
为了实现这种数据处理系统,必须有一个装置用于禁止普通程序进入HA中。一份申请号为56-124952的日本专利申请公开说明书中公开了一种禁止普通程序进入HA的系统。根据这种系统,一个用于把主存储器划分为一个SA和一个HA的边界地址预先设置在一个寄存器中,要在主存储器进行存取操作的地址通过一个比较器与该边界地址进行比较。在该系统工作在HA存取方式的情况下,即使当要在主存储器中进行存取操作的地址在地址数值上大于边界地址时,仍允许在主存储器进行存取操作。然而,在该系统的存取方式不是在HA存取方式的情况下,当比较器判断出要在主存储器中进行存取操作的地址在地址数值上大于边界地址时就会发生寻地异常情况,则禁止对主存储器进行存取操作。
由于下述原因,在中央处理机和存储器控制器两边都装有这种寻地异常检测装置。一般说来,存储器控制器即与一个中央处理机相连又与一个输入输出处理机相连。为了检测来自输入输出处理机的在HA中进行存取操作的地址,必须在存储器控制器里装有寻址异常检测装置。另一方面,当存储器控制器里的寻址异常检测装置用于检测来自中央处理机的在HA中进行存取操作的地址时,为了能够完整地执行一次中断操作,需要用于检测寻址异常地时间就变长了。因此,必须在中央处理机中装有寻址异常检测装置。
更进一步说,在主存储器HA被划分成彼此分开的子区的情况下,对于每一个子区都必须有两个边界寄存器(用于子区的首地址和终地址)和两个比较器(用于子区的首地址和终地址)。也就是说,所需的边界寄存器(或比较器)的数目硬件子区数目的两倍,因此硬件的数量就会大大增加。
本发明的一个目的是提供一种改进的用于存储器的存取控制系统。
本发明的另一个目的是提供一种能够简化寻址异常检测装置的存取控制系统。
为了高速地把逻辑地址转换成实际地址,数据处理系统中包括一个用于存储频繁使用的逻辑地址和实际地址对的转换后备缓冲器(以下简称为“TLB”)。此外,为了在一个缓冲存储器(即高速缓冲存储器)中存储那些存储在主存储器中的频繁使用数据的副本,并使用上述副本,数据处理系统包括一个缓冲地址数组(以下简称为“BAA”)及便保存上述数据存储在主存储器中的地址。
考虑到上述情况,根据本发明,每一个TLB或BAA的登记项有一个标记,该标记用于指示置入该登记项的一个地址是否包括在HA中。这样,当访问TLB以便进行地址转换时,或当访问BAA以便对缓冲存储器进行存取操作时,就从TLB或BAA中读出标记,并用该标记控制对主存储器的存取操作。从以下结合附图对本发明最佳实施方案的详细说明中,会明显地看到本发明上述的以及其他的目的、特征和优点。
在附图中:
图1是表示本发明一个实施方案的方框图;
图2是表示主存储器中的HA和SA的示意图;
图3中示出了一个表,用于说明图1中所示的存取控制电路输入信号与输出信号之间的关系;
图4是表示装在存储器控制器中的寻址异常检测装置的方框图。
图1是本发明一个实施方案的方框图。参见图1,举例来说,TLB20有512个登记项,它们的地址被赋值为数字0至511。除了实际地址和逻辑地址之外,TLB20的每一个登记项还包括一个标记(即F位)用来指示在该登记项中的实际地址是否包括在HA中。根据该登记项中的实地址是包括在HA中还是包括在SA中,F位分别取值“1”“0”。图2中示出了一个主存储器,该存储器被划分成具有下部地址的SA和具有上部地址的HA。
回过来再参见图1,当需要对主存储器进行存取操作时,给出的逻辑地址置入逻辑地址寄存器21。逻辑地址寄存器21的高径执行一预定的逻辑运算(即散列法),逻辑地址寄存器21里逻辑地址位中的九个位用于在TLB20中进行存取措作,也就是说把该登记项读出。比较器22把从TLB20中读出的逻辑地址与寄存器21中的高位而不是那些用于在TLB20中进行存取操作的位进行比较。当寄存器21的高位和读出的逻辑地址相符合时,该比较器输出逻辑值“1”。也就是说,当比较器22的输出取电平“1”时,对应设置在逻辑地址寄存器21中逻辑地址的实际地址在TLB20中。这种情况叫作“In TLB”(在TLB中)。当比较器22的上述输入信号彼此不相符合时,比较器22输出逻辑值“0”。也就是说,当比较器22的输出取电平为“0”时,对应设置在寄存器21中逻辑地址的实际地址不在TLB20中。这种情况叫做“NO+in TLB”(不在TLB中)。在这种情况下,从反相器27中输出一个指示“NO+in TLB”状态的信号。
比较器22的输出一个从TLB20中存有上述实际地址的登记项中读出的F位一起加到存取控制电路23上。存取控制电路23上还加有从信号线13来的HA存取方式位。当数据处理系统工作在HA存取方式时,从信号线13来的位信号取值为“1”,而当该系统的存取方式不是HA存取方式时,则取值为“0”。
图3中示出了一个表,用于说明存取控制电路23的工作情况。也就是说,通过存取控制电路23输入信号(即HA存取方式位、F位和比较器22的输出信号)之间的组合和存取控制电路23输出信号所表示的意义列表于图3中。参见图3,在比较器22的输出心号取电平为“0”的情况下,指示“NO+in TLB”状态。在这种情况下,不论HA存取方式位和F位的值是什么,存取控制电路23的输出信号都取电平为“0”。在比较器22的输出信号取电平为“1”的情况下,批示“In TLB”状态,存取控制电路23的输出信号以及存取方式的各种可能性的变化取决于HA存取方式位和F位的值。也就是说,当F位取值为“0”时,指示对SA的存取操作,不论HA存取方式位的值是什么,存取控制电路23的输出信号都是取电平为“0”。这就指示运行在“In TLB”状态,允许对主存储器进行存取操作,这再点在以下将作进一步说明。当F位取值为“1”时,存取控制电路的输出信号以及存取方式的方式的各种可能性的变化取决于HA存取方式位的值。更详细地说,当HA存取方式位取值为“1”时,指示数据处理系统以HA存取方式工作,要在HA中进行存取操作,存取控制电路23的输出信号取电平为“0”。也就是说,运行在“In TLB”状态,允许对主存储器进行存取操作。可是当HA存取方式取值为“0”时,指示对HA所要进行的存取操作处于该系统的存取方式不是HA存取方式的状态,存取控制电路23的输出信号取电平为“1”。
再参见图1,存取制控电路23的输出信号与一个通过信号线14加来的信号一起加到OR(或)电路24上,通过信号线14加来的信号指示发生在数据处理系统中的另一个寻址异常信号。当存取控制电路23的输出信号电平为“1”时,OR电路24输出一个电平为“1”的输出信号,即寻址异常信号。OR电路24的输出信号还通过反相器25加到AND(与电路26上。当OR电路24的输出信号取电平为“1”时,AND电路26关闭,这样就能防止把从TLB20中读出的实际地址传送到主存储器中。在“In TLB”状态,存取控制电路23的输出信号取电平为“0”,在这种情况下从TLB 20中读出的实际地址通过AND电路26输送出去。这个输送出去的实际地址与逻辑地址寄存器21中的低地址位相结合。该合成地址送到存储器控制器,然后再传送到主存储器用来进行对主存储器进行存取操作。
当发生“NO+in TLB”状态的情况时,起动一个地址转换程序步,一对新的逻辑地址和实际地址寄存到TLB20中。上述的地址转换程序是公知的,因此就不再对它进一步说明了。当新的地址对寄存在TLB20中时,通过信号线8从存储器控制器来加来的F位寄存在TLB中新地址对置入的登记项中。也就是说,存储器控制器包括如图4所示的寻址异常检测装置,并在上述的地址转换程序步中检测寄存的实际地址是否包括在HA中。
参见图4,当需要对主存储器作的一个地址被置入寄存器10中。另一方面,一个用于把主存储器划分成HA和SA的边界地址预先置入竟寄存器11中。比较器12把寄存器10中的内容与寄存器11中的内容进行比较,输出一个电平分别为“1”或为“0”的输出信号,输出信号的电平为“1”或为“0”取决于主存储器中要进行存取操作的地址在地址数值上是否大于边界地址。当数据处理系统以HA存取方式工作时,信号线13上的电位保持为电平“1”;而当该系统的存取方式不是HA存取方式时,信号线13上的电位保持为电平“0”。当信号线13上的电位取电平为“0”时,反相器15的输出信号取电平为“1”。这时,如果比较器12的输出信号取电平为“1”,AND电路16的输出信号就取电平为“1”,这样OR电路17的输出信号也取电平为“1”。这就指示在HA中的存取操作是在该系统的存取方式不是HA存取方式的情况下进行的。也就是说,发生了寻址异常的情况,则禁止对存储器进行存取操作。顺便说一句,当发生另一种寻址异常的情况时,信号线14上的电位处于电平识“1”的状态。
当一对逻辑地址和实地址寄存在TLB20中时,比较器12的输出信号还反映到图1中信号线28上。
根据图1和图3中所示的这个实施方案,在存取控制电路23的输出信号取电平为“1”的情况下,开始对寻址异常的情况进行处理。然而,可以不把这种情况作为寻址异常状态来处理,而把它作为“NO+in TLB”状态处理。当这种情况作为“NO+in TLB”状态来处理时,则执行与上述处在“NO+in TLB”状态时相同的操作。
从上述的说明可以看出,TLB20的每一个包含有地址对的登记项中都有指示在该登记项中的实际地址是否包括在HA中的标记。但是,在使用缓冲存储器系统的情况下,与上述标记相同的标记在每个所说的缓冲地址数组(即BAA)的登记项中提供,缓冲地址数组用于保存地址,在主存储器中这些地址上存储着与置入缓冲存储器的那些数据相同的数据。
从上述的说明可以明显看出,根据本发明创造性地使用了TLB和BAA,因此硬件的数量可以减少。特别是在HA被划分成子区,而这些子区在主存储器中彼此隔开的情况下,或在许多中央处理机与同一个存储器控制相连的情况下,本发明能够以显著的程序减少硬件的数量。
一般说来,TLB和BAA设计成允许进行高速读出操作。因此能够高速地检测出与HA存取操作有关的寻址异常情况。在“NO+in TLB”状态或“NO+in BAA”(不在BAA中)状态时,必须使用包括在存储器控制器中的寻址异常检测装置,因此检测寻址异常情况所需的时间就变长了。但是,处于“NO+in TLB”状态或“NO+in BAA”状态的可能性远低于处于“In TLB”状态或“In BAA”(在BAA中)状态的可能性。因此,数据处理系统的处理速度几乎不会受到“NO+in TLB”状态和“NO+in BAA”状态的影响。