发明内容
根据现有技术中存在的问题,即传统的数据调用方法会导致外存空间与内存空间之间的数据传输通道的堵塞,增加了传送数据和调用数据的操作时间,并且耗费了较多的系统资源,现提供一种计算机系统及数据读写操作方法,具体包括:
一种计算机系统,包括处理器和存储器,所述存储器包括多个存储单元并被划分成多个相等大小的存储块;每个所述存储单元具有字地址,通过字地址线进行访问;每个所述存储块具有块地址,通过块地址线进行访问,其中,还包括:
一寻址组件,与所述处理器内存地址线的高位及所述存储器的字地址线的高位分别连接,可控制的在所述存储器上一连续或者不连续的预设范围内将所述处理器形成的内存地址的高位转化为对应的所述存储器字地址的高位并输出至所述存储器;
所述处理器内存地址线的低位与所述存储器的字地址线的低位连接;
所述预设范围小于或者等于所述处理器内存地址线的寻址范围;
所述处理器通过修改所述预设范围,变化所述预设范围覆盖的所述存储器的存储单元。
优选的,所述寻址组件包括多个锁存单元,每个所述锁存单元的输出端连接所述存储器的字地址线的高位,每个所述锁存单元存储一所述存储单元的字地址的高位,所有所述锁存单元存储的所述存储单元的字地址的高位覆盖的所述存储器的存储单元形成所述预设范围,所述处理器通过修改所述锁存单元中存储的所述存储单元的字地址的高位改变所述预设范围。
优选的,所述寻址组件包括一第一译码单元,所述第一译码单元的输入端与所述处理器的内存地址线高位连接,所述第一译码单元的输出端与每个所述锁存单元分别连接,所述第一译码单元根据所述处理器形成的内存地址的高位选通对应的一个所述锁存单元进行输出。
优选的,所述存储器的存储单元按照字地址被划分成复数个大小相同的区域,每个所述锁存单元存储的所述存储单元的字地址的高位对应一个所述区域的字地址的首地址;
所述处理器修改所述锁存单元中存储的所述存储单元的字地址的高位时选择一当前目标文件所在的区域,并将选中的所述区域的首地址的高位赋值至一所述锁存单元。
优选的,多个所述锁存单元中至少包括一个第一类锁存单元,所述第一类锁存单元存储的存储单元的字地址的高位不可被修改。
优选的,所述第一类锁存单元存储的存储单元的字地址的高位对应的字地址所在的区域用以存储操作系统。
优选的,当所述预设范围小于所述处理器的内存地址线的寻址范围时,所有所述锁存单元的写入端被编址于所述处理器的内存地址线的寻址范围内,并与所述处理器的内存地址线的低位连接。
优选的,所述寻址组件包括一第二译码单元,所述第二译码单元的输入端与每个所述锁存单元的输出端分别连接,所述第二译码单元的输出端与所述存储器连接,所述第二译码单元用以根据被选中的所述锁存单元输出的所述存储器字地址的高位对所述存储器进行字地址高位部分的寻址。
优选的,所述锁存单元主要由一组锁存器形成。
优选的,所述第一译码单元主要由一组译码器芯片形成。
优选的,所述第二译码单元主要由一组译码器芯片形成。
本发明的另一方面,包括一种数据读写方法,其中,应用于如上述计算机系统,步骤具体包括:
步骤1,判断读写请求的目标文件是否存储于所述预设范围当前覆盖的存储单元集合内,如目标文件存储于所述预设范围当前覆盖的存储单元集合内则执行步骤2,否则执行步骤6;
步骤2,处理器产生一内存地址,所述内存地址的高位被送入所述寻址组件,所述内存地址的低位被送入所述存储器;
步骤3,所述寻址组件将所述内存地址的高位转化为对应的所述存储器的字地址的高位并输出至所述存储器;
步骤4,所述存储器将所述寻址组件输出的所述字地址的高位及所述内存地址的低位组合成字地址,并选通所述字地址对应存储单元与所述处理器连接进行读写操作;
步骤5,所述处理器采用所述内存读写方式从所述当前工作内存中对数据进行读写操作,并退出等待下一次读写请求;
步骤6,所述处理器改变所述预设范围于所述存储器上覆盖的存储单元集合,使所述读写请求的目标文件处于所述预设范围内于所述存储器上覆盖的存储单元集合内,转至步骤2继续执行。
上述技术方案的有益效果是:
1)将计算机系统中的外存与内存合并,减少了传统系统中必需的内存芯片结构,减少了整个计算机系统的制造成本;
2)在对外存中的数据进行调用时,无需先向内存中发送一份数据拷贝,也无需在数据被修改过以后重新对外存进行更新,避免了长时间调用数据所产生的数据通道的拥堵现象,并且减少了用于数据交换的时间,提高了系统的运行效率;
3)无内存与外存之间数据交换,因而降低了了对内存命中率的要求,可降低对操作系统的要求,可提高操作系统的运行效率;
4)直接在外存空间中对数据进行读写操作,缩短了读写操作的操作时间;
5)并没有对传统的硬件存储结构做大幅度修改,应用简单,适用性广。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
本发明的较佳的实施例中,针对现有技术中存在的问题,即传统的计算机系统中,内存与外存分开从而导致系统调用数据时需要频繁在内存与外存之间进行数据传输和拷贝的问题,给出了一种在一个存储器上构造两种存储空间,并在其上进行数据读写的技术方案,具体包括:
如图1所示,本发明的较佳的实施例中,一种计算机系统,包括处理器100和存储器200,存储器200包括多个存储单元并被划分成多个相等大小的存储块;每个存储单元具有字地址,通过字地址线210进行访问;每个存储块具有块地址,通过块地址线220进行访问,上述通过块地址线220进行访问的形式即现有技术中系统对外存进行访问的形式,由于此形式并非本发明技术方案的目标,因此不再对系统通过块地址线220访问存储器200进行展开。
其中,还包括:一寻址组件300,与处理器100的内存地址线110的高位及存储器200的字地址线210的高位分别连接,可控制的在存储器200上一连续或者不连续的预设范围内将处理器100形成的内存地址的高位转化为对应的存储器字地址的高位并输出至存储器200;
处理器100的内存地址线110的低位与存储器200的字地址线210的低位连接;
其中预设范围小于或者等于处理器100的内存地址线110的寻址范围;
处理器100通过修改预设范围,变化预设范围覆盖的存储器200的存储单元。
上述技术方案中,存储器200上的预设范围相当于现有技术中的内存,处理器100通过寻址组件300访问该预设范围,相当于现有技术中处理器访问内存,当目标文件不在预设范围内时即现有技术中目标文件不在内存中的情况,处理器100通过改变预设范围于存储器200上覆盖的存储单元,使目标文件落入预设范围内,相当于现有技术中将外存中的目标文件写入内存,上述技术方案通过在一个存储器200上定义一预设范围并通过处理器100在需要的时候改变预设范围覆盖的存储单元,使现有技术中系统对内存和外存的访问在一个存储器200上实现,从而不在需要分别设置内存和外存,节省了资源,同时,由于本发明的技术方案将原本需要进行大量读写操作的内存与外存之间的数据交换改变为改变预设范围覆盖的存储单元,大幅减少了系统的开销,提高了系统的运行速度。
进一步的,上述技术方案中,通过寻址组件300对处理器100形成的内存地址的高位进行转换,形成存储器200的字地址高位,并配合处理器100形成的内存地址的低位,从而实现处理器100在容量大于处理器100寻址能力的存储器200上进行访问,同时,只要改变寻址组件300的转换策略,即可实现改变预设范围覆盖的存储单元。
需要指出的是,寻址组件300的地址转换策略可由硬件实现,也可由软件实现,本发明并不限制其实现方式,作为对本发明可行性的说明,下面将以一种硬件实现转换的实施方式对技术方案作进一步的描述。
本发明的较佳的实施例中,寻址组件300可包括多个锁存单元301,每个锁存单元301的输出端连接存储器200的字地址线210的高位,每个锁存单元301存储一存储单元的字地址的高位,所有锁存单元301存储的存储单元的字地址的高位覆盖的存储器200的存储单元形成预设范围,处理器100通过修改锁存单元301中存储的存储单元的字地址的高位改变预设范围。
上述寻址组件300的实现方式通过多个锁存单元301中分别存储的存储器200的存储单元的字地址的高位框定预设范围,该预设范围可以是连续的也可以是不连续的,并且,处理器100可每次修改1个或者几个或者全部锁存单元301中存储的存储单元的字地址的高位,实现根据需要对预设范围部分或者全部的改变。
本发明的较佳的实施例中,寻址组件300还可包括一第一译码单元302,第一译码单元302的输入端与处理器100的内存地址线110的高位连接,第一译码单元302的输出端与每个锁存单元301分别连接,第一译码单元302根据处理器100形成的内存地址的高位选通对应的一个锁存单元301进行输出。
需要指出的是,采用第一译码单元302配合锁存单元301的实现方法仅仅是本发明技术方案中寻址组件300的地址转换策略的一种实现方式,并不能以此限制本发明的保护范围。本发明的较佳的实施例中,存储器200的存储单元按照字地址被划分成复数个大小相同的区域,每个锁存单元301存储的存储单元的字地址的高位对应一个区域的字地址的首地址;
处理器100修改锁存器中存储200的存储单元的字地址的高位时选择一当前目标文件所在的区域,并将选中的区域的首地址的高位赋值至一锁存单元301。
上述技术方案将存储器200进行逻辑上的分割定义成大小相同的区域,并使一个锁存单元301中存储的存储器200的字地址的高位正好覆盖一个区域,从而使处理器100在修改锁存单元301中存储的存储器200的字地址的高位时可直接将一被选中的区域的首地址的高位赋值至一锁存单元301,通过这种实施方式可避免出现锁存单元301对应的区域之间出现重叠导致预设范围实际容量缩小,进而导致处理器100寻址能力降低。
本发明的较佳的实施例中,多个锁存单元301中至少包括一个第一类锁存器,第一类锁存器存储的存储单元的字地址的高位不可被修改。第一类锁存器可用于指向系统经常需要访问的文件所在的区域,以避免系统频繁的改变预设范围造成系统运行效率降低。
本发明的较佳的实施例中,第一类锁存器存储的存储单元的字地址的高位对应的字地址所在的区域用以存储操作系统。操作系统通常为计算机系统访问最为频繁的文件,且通常操作系统于存储设备上的位置不会改变,因此将第一类锁存器存储的存储单元的字地址的高位对应的字地址所在的区域用以存储操作系统有利于系统运行效率提高。
本发明的较佳的实施例中,寻址组件300包括一第二译码单元303,第二译码单元303的输入端与每个锁存单元301的输出端分别连接,第二译码单元303的输出端与存储器200连接,第二译码单元303用以根据被选中的锁存单元301输出的存储器字地址的高位对存储器200进行字地址高位部分的寻址。
本发明的较佳的实施例中,锁存单元301可主要由一组锁存器形成。
本发明的技术方案中还包括一种数据读写方法,可被应用于如上述计算机系统中,步骤具体包括:
步骤1,判断读写请求的目标文件是否存储于预设范围当前覆盖的存储单元集合内,如目标文件存储于预设范围当前覆盖的存储单元集合内则执行步骤2,否则执行步骤6;
步骤2,处理器产生一内存地址,内存地址的高位被送入寻址组件,内存地址的低位被送入存储器;
步骤3,寻址组件将内存地址的高位转化为对应的存储器的字地址的高位并输出至存储器;
步骤4,存储器将寻址组件输出的字地址的高位及内存地址的低位组合成字地址,并选通字地址对应存储单元与处理器连接进行读写操作;
步骤5,处理器采用内存读写方式从当前工作内存中对数据进行读写操作,并退出等待下一次读写请求;
步骤6,处理器改变预设范围内于存储器上覆盖的存储单元集合,使读写请求的目标文件处于预设范围内于存储器上覆盖的存储单元集合内,转至步骤2继续执行。
以下通过对一些具体的实施例进行说明以阐述本发明的主要思想,在此之前先对一些名词进行定义。下述名词的定义仅适用于本发明的一些具体的实施例中用作对本发明的技术方案做详细的解释,以有利于本领域技术人员对本发明的技术方案的深入理解,而非用于限定本发明的保护范围。
块地址:存储器200上以数据块为单位的存储单元201序列的序列号,即系统通过块地址线220寻址组件300,以外存读写方式对存储器200进行读写操作时的存储地址的序列号。
块空间:所有块地址组成的序列。本发明的较佳的实施例中,块空间就是由块地址线220连接的存储器200上的存储空间,也就是传统意义上的外存空间。
字地址:存储器200上以内存空间数据宽度为单位的存储单元201的序列号。在现有的计算机系统中内存空间数据宽度等于处理器100(CPU)的数据总线宽度。
字空间:所有字地址组成的序列。本发明的较佳的实施例中,字空间就是由字地址线210连接的存储器200上的存储空间。
需要指出的是上述字空间和块空间指向的是同一存储器,即在同一存储器上分别连接字地址线210和块地址线220。
双空间存储器:同时具有块空间和字空间的存储器,即在同一存储器上分别连接字地址线和块地址线的存储器,也即本发明的较佳的实施例中所述的存储器200。
映射窗:可以被指派到存储器200的字空间上局部范围的一段连续且不得再分割的确定的内存地址范围。本发明的较佳的实施例中,一个上述映射窗即对应一个区域的一段连续的内存地址,所有的映射窗对应的区域组成上述的预设范围。
当前映射窗:处理器100(以下以CPU进行指代)的当前机器指令访问的映射窗。本发明的较佳的实施例中,当前映射窗即当前被选通的存储器的存储单元所处的区域。
映射窗首地址:一个映射窗包含的最小内存地址。
映射窗幅:一个映射窗包含的内存地址总量。本发明的较佳的实施例中,一个映射窗的窗幅等于其中包含的内存地址的最大值减去该映射窗首地址之后再加1。
映射窗号:映射窗的序列号。
窗壁:正好安置一个映射窗的双空间存储器的在字空间上连续的存储单元。本发明的较佳的实施例中,一个窗壁为在存储器200中对应于一个映射窗的连续的多个存储单元的集合,即本发明较佳实施例中的区域。
窗壁号:窗壁的序列号。
窗位:为一个存储器200的字空间地址,可对其指派映射窗首地址。本发明的较佳的实施例中,通俗的理解,就是映射窗在字空间上的定位位置。
推移锁存器:指示一个映射窗当前所在的窗位,其值就是对应映射窗所在窗壁的窗壁号,也即本发明的较佳的实施例中提到的锁存单元301。
推移锁存器组:所有推移锁存器排列成的序列表。
推移锁存器号:推移锁存器在推移锁存器组中的序列号。当推移锁存器按映射窗号排序时,推移锁存器号与映射窗号相同。
推移:将一个映射窗指派给一个窗壁的操作,在本发明的较佳的实施例中推移以修改锁存单元301中存储的值来实现。
开窗:被指派了一个映射窗的窗壁的当前状态。
闭窗:无映射窗指派的窗壁的当前状态。
不可闭窗:指派给其的映射窗不能被推移的窗壁,相当于本发明较佳实施例中第一类锁存器指向的区域。
当前窗壁:当前映射窗所在的窗壁,相当于本发明较佳实施例中当前被第一译码单元302选通的锁存单元301指向的区域。
本发明的较佳的实施例中,基于上述名词的定义,可以将本发明的发明目的归结于:通过寻址组件300将CPU产生的内存地址的高位转换为存储器200的字地址高位即映射窗的窗位,并结合CPU产生的内存地址的低位形成存储器200的字地址,以选通在一预设范围内的存储器200上的存储单元,当读写请求的目标文件不在预设范围内时,通过改变组成预设范围的一个或者几个映射窗于存储器200上的位置,重组预设范围,使一个或者几个映射窗被推移到读写请求的目标文件所在的窗壁,从而使重组后的预设范围包含读写请求的目标文件所在的存储单元。依据该发明目的设计的计算机系统只需一个存储器,因而没有内存与外存之分,但这个存储器上同时构造了块空间和字空间,由于块空间的访问,不是本发明的改进方向,因此现有技术中块空间的访问方式都可以被应用,不再赘述。本发明的较佳的实施例中,将这种结构的存储器称为双空间存储器,CPU透过内存空间的映射窗对这个双空间存储器的字空间进行分区域随机访问,从而消除了传统计算机系统中大量数据在内存和外存之间传送的问题。
实现上述发明目的的技术方案,简言之,就是一种将计算机的内存空间在双空间存储器上推移的方法:利用一个推移锁存器组,实现将内存空间上分割出的映射窗内的字地址映射到双空间存储器的字空间上的一段等量且连续编址的字空间地址,映射完成后,CPU访问映射窗内的字地址,可实现对双空间存储器上的这段字空间进行随机存取操作。改变推移锁存器组中某个推移锁存器的值,可实现将对应的映射窗对应的内存地址映射到双空间存储器的字空间上的另一个位置,相当于把该映射窗移动到另一个位置,因此本发明的较佳的实施例中,可以形象地将这种移动称为对内存空间的映射窗的推移操作。
本发明的较佳的实施例中,双空间存储器上的字空间与内存空间的差异在于:内存空间的存储容量大小由CPU的内存地址线的数量决定,一般等于计算机系统的机器指令中给出的物理地址位数。而本发明的较佳的实施例中的双空间存储器上的字空间的容量并不受CPU的内存地址线数量限制。
本发明的较佳的实施例中,字空间与块空间的联系在于它们是同一个存储器(即双空间存储器)上的地址空间,所以二者标识的总存储容量相等。即:块空间大小乘以块容量等于字空间大小乘以字长。这决定了下列事实:如果块容量为2x个字(x为正整数),即块内部的字用x位字寻址线来寻址,一般为字空间地址的低x位,则字空间地址中高于x的位数等于块空间地址的位数,即字空间的字地址寻址线的位数等于块空间地址位数+x个低位。因此,在这种情况下,块空间地址就是字空间地址的高位部分。在本发明的较佳的实施例中,可定义块大小为区域(即窗壁)容量的整数倍,也可以定义窗壁容量是块容量的整数倍。
如图4为本发明的一个较佳的实施例,对上述计算机系统的电路结构做具体描述的示意图。
本发明的较佳的实施例中,对图4所示的实施例以及后续附图中的附图标记做以下说明:
该实施例中系统总体结构包括:CPU1、内存地址译码阵列2、推移锁存器组3、和双空间存储器4,原理如图4所示,其中CPU1为处理器100的一种具体实施例,内存地址译码阵列2为第一译码单元302的一种具体实施例,推移锁存器组3为多个锁存单元301的一种具体实施例,双空间存储器4为存储器200的一种具体实施例。
为了便于说明,在本发明的各个较佳的实施例中,均以IA32架构的CPU为例,但并不意味着能够以IA32架构的CPU作为本发明的保护范围的限定。本发明的其他较佳的实施例中,随着CPU的架构类型的改变,具体的连接线可能会有相应的变化,但这种变化为本领域技术人员在本发明的技术方案的基础上不必付出创造性劳动即可获得,因而均应包含在本发明的保护范围内。
本发明的较佳的实施例中,IA32架构的CPU的数据总线的宽度为32位,用数据总线DB31~0表示;地址总线宽度为32位,用地址总线AB31~0表示;读写控制线以读写控制线R/W#表示(本发明的较佳的实施例中,上标“#”表示“取非”或“低电平有效”)。
其中CPU1的内存读写控制线R/W#通过字空间读写控制线W#与双空间存储器4的字空间读写控制线WE#连接;CPU1的数据总线DB31~0通过字数据传送线DB31~0与双空间存储器4的数据线DQ31~0对应连接;而CPU1的地址总线AB31~0分成两部分,其中低位的p条地址线AB(p-1)~0通过低p位的字空间字寻址线W(p-1)~0与双空间存储器4的低p位的字空间地址线AC(p-1)~0对应连接,其余的高位部分的地址线AB31~p则对应连接入内存地址译码阵列2;内存地址译码阵列2的各输出线分别接推移锁存器组3中一个锁存器的输出控制端;所有推移锁存器的同名数据输出线相并接,并连接高位的字空间寻址线WM~p,其中M-p等于推移锁存器的位数。
图4所示的实施例的工作原理为:当CPU1访问内存时给出32位内存地址Ad31~0;内存地址的高32-p位Ad31~p通过高位的地址线AB31~p进入内存地址译码阵列2;内存地址译码阵列2对内存地址的高32-p位Ad31~p译码后,内存地址译码阵列2有且仅有一个输出引脚为有效电平;这个有效电平输出引脚控制推移锁存器组3中的一个锁存器的输出端有效;该有效锁存器把其保存的值送上高位的字空间寻址线WM~p;同时内存地址的低p位部分Ad(p-1)~0通过低p位的地址线AB(p-1)~0送入低位的字空间寻址线的W(p-1)~0,于是字空间寻址线WM~0对双空间存储器4的字空间进行寻址,在字空间读写控制线W#的有效信号控制下,被寻址的字空间存储单元通过字数据传送线DB31~0传送数据至CPU1。
由其工作原理可知,在图4所示的实施例中,被指派到字空间局部范围上的一段连续且不得再分割的内存地址是Ad(p-1)~0的取值,因此,这个系统的每个映射窗的窗内地址为Ad(p-1)~0,窗幅为2p,共有2(31-p)个推移锁存器,每个推移锁存器对应一个映射窗。由于每个推移锁存器有M-p位,故字空间共有2M+1字节,比内存空间大2M-31倍,分为2(M-p)个窗壁。
结合图4中的实施例,推移原理可简单说明为,假设CPU1的内存地址线总数为N+1,双空间存储器4的字空间地址线总数为M+1。用低p位内存地址线构成映射窗,窗幅为2p,其余的高n位内存地址线构成推移锁存器选择线,则有2n个推移锁存器,且n=N+1-p;推移锁存器的输出数据送上字空间地址线的高m位,则字空间被分成2m个窗壁,且m大于n,m=M+1-p。当CPU1输出一个N+1位的内存地址后,其高n位通过内存地址译码阵列2选中推移锁存器组3中的一个推移锁存器,这时称被选中的推移锁存器所对应的映射窗为当前映射窗,该推移锁存器输出双空间存储器4的字空间地址的高m位,m的值给出当前映射窗被定位的当前窗壁,CPU1通过当前映射窗访问当前窗壁上的字数据。若CPU1访问连续的内存地址,则n的值不变,于是选中的推移锁存器不变,则当前映射窗不变,则CPU1访问到同一个窗壁的连续地址。若CPU1访问内存的地址有大跳跃,导致n值改变,则通过内存地址译码阵列2选中推移锁存器组3中的另一个推移锁存器,则当前映射窗改为后被选中的锁存器的对应的映射窗,该锁存器输出的m位数据将当前映射窗定位到另一个窗壁上,即将当前映射窗推移到新窗壁。
当更新一个推移锁存器的锁存值后,就使得该推移锁存器对应的映射窗指向其新值所表示的窗壁,因此也称推移锁存器为推移矢量,此后一旦CPU1送出的内存地址的高n位选中该推移锁存器,则对应的映射窗就自动被推移到该窗壁。修改推移锁存器中存储的值可实现该推移锁存器对应的映射窗改变其定位的窗壁,为了方便CPU1修改推移锁存器,在一种较优的实施方式中,可把推移锁存器的数据输入端设置在双空间存储器4的字空间的高位窗壁上,这时推移锁存器在结构上的特点为:推移锁存器的数据输入端位于双空间存储器4的字空间中,而数据输出端是双空间存储器4字空间的高位地址线,用于对双空间存储器4的字空间寻址。在一种较优的实施方式中,可将推移锁存器的数据输入端设置在双空间存储器4的字空间的用户不可见窗壁以保护推移锁存器的安全。
本发明较优的实施例中,如图5所示,其中的虚线框给出了用1073741824片NorFlash型RAM芯片EN29GL256(下文简称为存储芯片40)构造的双空间存储器结构,需要说明的是上述芯片的具体器件选型及数量均为说明需要,并不能以此限定本发明的保护范围。其中,包括一个字空间高位地址译码器41(第二译码单元303的一种具体实施例)和268435456个存储子体42。存储子体42从No.0000000到No.268435455编号,每个存储子体42包含4个存储芯片40,如图5中标示有No.268435455存储子体42所示。
一种较优的双空间存储器4的数据线DQ31~0的形成方式为:各存储芯片40的片选端CE#分别通过三态门k0、三态门k1、三态门k2和三态门k3后并接在一起,经过非门f后,形成所在存储子体42的片选端Ci(i=0,1,……,268435455),而各三态门分别由信号线B3、信号线B2、信号线B1和信号线B0控制,于是信号线B3、信号线B2、信号线B1和信号线B0组成该存储子体42的数据线DQ31~0的字节选择线B3~0;所有存储子体42的字节选择线B3~0连接在一起,取反后接到CPU1的引脚BE# 3~0,因此受信号线B0控制的存储芯片40的数据线DQ7~0被连接到CPU1的最低8位数据线DB7~0,受信号线B1控制的存储芯片40的数据线DQ7~0被连接到CPU1的数据线DB15~8,受信号线B2控制的存储芯片40的数据线DQ7~0被连接到CPU1的数据线DB23~16,受信号线B3控制的存储芯片40的数据线DQ7~0被连接到CPU1的数据线DB31~24,于是4个存储芯片40的8位数据线DQ7~0共同组成存储子体42的32位数据线DQ31~0。
一种较优的双空间存储器4的字空间地址线ACM~0的形成方式为(M值为字空间地址的位数-1):4个存储芯片40的片内地址引脚A21~0,-1对应并接后形成所在存储子体42的字空间地址线AC24~2,由于逻辑上字节选择线B3~0是字空间地址线AC1和字空间地址线AC0解码后的输出线,则字空间地址线AC24~2和字节选择线B3~0一起组成存储子体42的字空间地址线AC24~0,逻辑上共25根;4个存储芯片40的片选端CE#分别通过三态门k0、三态门k1、三态门k2和三态门k3后并接在一起,经过非门f后,形成所在存储子体42的片选端Ci(i=0,1,……,268435455),存储子体42的片选端C268435455~0连接字空间高位地址译码器41的输出引脚中下标编号相同的引脚,于是,字空间高位地址译码器41的输入端就是双空间存储器4的字地址的高位部分,图5中标记为AC52~25,于是双空间存储器的地址线引脚为AC52~25、AC24~2和B3~0,逻辑上共计53条,故双空间存储有8P字节。
一种较优的字空间寻址线WM~0的形成方式为:CPU1的引脚BE# 3~0取“非”后起到字空间寻址线最低2位W1和W0的作用,故可称这4条线为逻辑上的字空间寻址线最低2位;CPU1的内存地址线的AB20~2直接作为字空间寻址线W20~2;CPU1高11位的地址线AB31~21接入内存地址译码阵列2的寻址端I10~0,内存地址译码阵列2的2048条输出线O2047~0分别连接推移锁存器组3中的下标相同的一个锁存器的输出使能端E2047~0,对2K个推移矢量进行选择;被输出线O2047~0选中的一个推移锁存器输出保存的32位值到推移锁存器组3的输出引脚O31~0,输出引脚O31~0的输出形成高位的字空间寻址线W52~21。于是,在逻辑上,由字空间寻址线W52~2和CPU1的引脚BE# 3~0引脚的“非”共53位形成字空间寻址线W52~0,故字空间有8P字节地址。
一种较优的字空间寻址线WM~0和双空间存储器字空间地址线ACM~0的连接方式为:由于图5中的存储子体42有地址线25根,故可将由W24~2和CPU1的引脚BE# 3~0取非后所形成的最低25位的字空间寻址线通过三态门k5和三态门k6后连接到存储子体42的子空间地址线AC24~2和字节选择线B3~0形成的25根地址线;高28位的字空间寻址线W52~25通过三态门k4后接字空间高位地址译码器41的输入端AC52~25,字空间高地址译码器41的输出端HO268435455~0分别接一个存储子体42的片选端Ci(i=0,1,……,268435455),且连接时使存储子体42的编号与字空间高位地址译码器41的输出端下标编号值相同,于是字空间寻址线W52~25寻址存储子体42实现对存储子体42的选择,而字节选择线B3~0寻址存储子体42内的芯片40,字空间寻址线W24~2寻址芯片40内的字节存储单元。
一种较优的对双空间存储器4的字空间的访问方式的控制为:如图5所示的实施例中,各存储芯片40的输出控制端OE#取反后和写入控制端WE#一同并接到所在存储子体42的读写控制端O/W#,存储子体42的读写控制端O/W#通过三态门k7后连接CPU1的读写控制端R/W#,而三态门k7受CPU1的访问控制引脚M/IO#的控制,在访问控制引脚M/IO#为高电平时三态门k7才导通,又由于仅当CPU1访问内存时访问控制引脚M/IO#才输出高电平,所以CPU1对字空间的访问只能是访问内存方式。当CPU1给出读内存指令时,访问控制引脚M/IO#和内存读写控制线R/W#均为高电平,则存储子体42的读写控制端O/W#为高电平,进而使存储子体42内的各存储芯片40的字空间写控制线WE#无效,而存储子体42的读写控制端O/W#取反后使存储芯片40的输出控制端OE#有效,于是存储芯片40输出数据到CPU1,同理,当CPU1给出写内存指令时,访问控制引脚M/IO#为高电平。而内存读写控制线R/W#为低电平,故存储芯片40接收CPU1送来的数据。
一种较优的双空间存储器4的字空间的访问过程为:访问字空间对应于CPU1访问内存,这时块管理器43不工作,块管理器43的输出端c为低电平且块管理器43的其他输出端均为断开状态,于是三态门k4、三态门k5和三态门k6均为导通状态,且字空间地址线的值来源于CPU1的内存地址总线和推移锁存器的输出,此时推移系统工作,具体为:当CPU1访问内存时于内存地址总线AB31~2和引脚BE# 3~0上送出32位内存地址,其低21位内存地址总线AB20~2和BE# 3~0取非穿过开启的三态门k5和三态门k6接入各存储子体42,形成双空间存储器4的低21位地址Ad20~0(由双空间存储器4的字空间寻址线AC20~2和字节选择线B3~0形成),实现对双空间存储器4的字空间每2M地址范围内的字节寻址,由此构成图5所示系统的映射窗;CPU1的高11位的地址总线AB31~21接入内存地址译码阵列2的寻址端I10~0,经由内存地址译码阵列2后,在推移锁存器组3中的2K个锁存器中选择一个,即选择推移矢量;被CPU1产生的高11位内存地址AB31~21的编码值选中的一个推移锁存器将其保存的32位值通过推移锁存器组3的输出引脚O31~0输出到高位的字空间寻址线W52~21;其中字空间寻址线W24~21穿过开启的三态门k5接入各存储子体42的地址线AC24~21,来选择存储子体42内部16个窗壁中的一个;而字空间寻址线W52~25穿过开启的三态门k6接字空间高位地址译码器41的输入端AC52~25,来选择存储子体42。故:字空间寻址线W52~21完成对双空间存储器4的窗壁的选择,共有232(4G=4294967296)个窗壁,其值是窗位首地址的高32位。
本发明的较佳的实施例中,需要考虑以下这种情况:
由于计算机系统中有一些程序和数据关乎到整个系统的安全,例如:中断向量表、任务段中的记录、推移锁存器组等,使用者一旦由于恶意或误操作而客观上修改了这些程序或数据,就会导致数据被盗、数据损坏或系统崩溃。因此计算机系统总是将这些程序和数据设定为使用者不可修改或不可见;还有一些数据在内存中的位置已经被CPU的硬件定义好,必须将它们按要求放好,否则系统无法正常工作,这些位置的数据也不允许使用者修改。
进一步地,本发明的较佳的实施例中,由于采用推移锁存器组3来进行映射窗的推移操作,但是如果使用者能随意直接推动映射窗,将给整个软件系统的安全带来致命危险,因此,任何情况下都不能允许任何使用者的应用程序来推动任何映射窗,包括不能推动它自身的映射窗,而只能向操作系统提出访问双空间存储器4的字空间的请求,由操作系统将使用者的请求变换为向底层控制软件提出映射窗请求,再由底层控制软件为使用者实施映射窗移动操作。确保使用者不能推动映射窗的办法在于不允许使用者访问推移锁存器组。达到这一目标的方法之一是将推移锁存器组安置在只有系统制造商的专用底层控制软件可以访问的双空间存储器4的字空间的特殊位置上,而且对给这个区域赋值的操作进行严格限制。另外,如果将关乎系统生命和系统自动回复的软件所对应的推移锁存器设定为不可修改,甚至将这几个映射窗的锁存器改用不可修改锁存器,则可以保证系统在任何情况下的基本安全。上述提到的不可修改锁存器即为第一类锁存器的具体实施方式。
当修改了一个推移锁存器锁存的内容时,该推移锁存器指向双空间存储器4的字空间的一个新位置,对应的映射窗就被定位在以这个新位置为窗位的窗壁上,这个窗壁的当前状态在本发明的较佳的实施例中被称为开窗,而没有被任何推移锁存器来指向的窗壁的当前状态在本发明的较佳的实施例中被称为闭窗。如果将某个推移锁存器锁存的值设定为不可修改,则相应的映射窗成为不可移动的映射窗,且这个推移锁存器就始终指向一个特定的窗壁,这个窗壁就始终处于开窗状态,成为不可闭窗。本发明的较佳的实施例中,任何状况下CPU1都能透过不可移动映射窗来访问对应的不可闭窗中的数据和程序,这为系统自动恢复创造了条件。
由于不可闭窗的位置是由系统制造商决定的,如果位于其中的推移锁存器的锁存值不能被读出,则对应不可闭窗的位置对软件使用者均不可见,甚至其对操作系统也是不可见的。使用者或操作系统对不可闭窗的访问只能请求系统制造商提供的底层控制软件来完成,这在一定程度上加强了系统的安全性。
如图3所示的实施例中示出了一种推移锁存器组3的构造的优选实施方式。推移锁存器组3是实现推移技术的核心,是一个锁存器阵列,其结构如图3所示。图中的实施例主要由8192个8位锁存器芯片74LS373形成的推移锁存器组芯片阵列301和一个推移锁存器地址译码器310组成,每4个74LS373芯片组成一个32位的推移锁存器31,编号从0000到2047,见图3的双点划线方框内结构。图中的存储芯片阵列400即存储子体425组成的集合的一种实施例。
在第j个推移锁存器31中(j=0,1,……,2047),4个锁存器芯片311的输出控制端O并接在一起,形成该推移锁存器31的输出控制端Ej;4个锁存器芯片311的数据输出端Q7~0顺序排列,组成该推移锁存器31的数据输出端O31~0;4个锁存器芯片311的写入控制端G并接在一起,形0成该推移锁存器31的写入控制端Aj;4个锁存器芯片311的数据写入端D7~0顺序排列,组成该推移锁存器31的数据写入端D31~0。
所有推移锁存器31的数据输出端O31~0的同下标线并接在一起,形成推移锁存器组3的数据输出线32,数据输出线32进一步的构成字空间地址线的高32位W52~21;第j个推移锁存器31的输出控制端Ej受内存地址5译码阵列2的一个输出引脚Oj控制;所有推移锁存器31的数据写入端D31~0的同下标线并接在一起,形成推移锁存器组3的数据写入线33,数据写入线33进一步的并连接到CPU1的数据总线DB31~0;第j个推移锁存器31的写入控制端Aj受其内部的推移锁存器地址译码器310的一个输出引脚Xj控制,而推移锁存器地址译码器310的输入端J10~0接字空间地址线W12~02,推移锁存器地址译码器310的片选端IE接与门Y的输出,而与门Y的输入为字空间地址线W24~13取非和字空间高位地址译码器41的输出端HO268435455。
根据推移锁存器地址译码器310的输入端J10~0和片选端IE的连接,向第j个推移锁存器31写入数据(推移矢量值)的过程为:当字空间地址线W52~25全为1且W24~13全为0时,与门Y输出1,此时推移锁存器地址译码器310被选中,推移锁存器地址译码器310对从输入端J10~0连接的部分字空间地址线W12~2输入的内容进行译码,根据字空间地址线W12~2的值选通一个Xj输出端,该Xj控制第j个推移锁存器31的数据写入控制端Aj有效,于是CPU1可通过数据总线DB31~0将推移矢量值写入第j个推移锁存器31。由此可知:推移锁存器31的数据写入端位于双空间存储器4的字空间的高端区域,而它的数据输出端产生字空间的高位地址。这是不同于锁存器一般用法的特征。
本发明的较佳的实施例中,对不可闭窗做进一步的说明:
可设定一个不可闭窗并将一个数据表放置在该窗中。本发明的较佳的实施例中,可以将第第2047号映射窗设定为不可移动映射窗,即将它所在的窗壁设定为不可闭窗,并将推移锁存器组3放置在该不可闭窗中。
本发明的较佳的实施例中,如图8(A)~图8(C)所示,若将2047号推移锁存器的锁存值设定为0ffff ffffh,并不可修改,则2047号映射窗被设定为不可移动映射窗。当2047号推移锁存器把0ffff ffffh值送上字空间寻址线W52~25后,在双空间存储器4的字空间上寻址到1f ffffffe00000h位置,于是第2047号映射窗被定位在双空间存储器字空间的1fffff ffe00000h位置,即第4294967295号窗壁,如图6所示的实施例中的表格所示。
当一个推移锁存器31的值被设定为不可修改时,它对应的映射窗就成为不可推移窗,该窗被固定在该推移锁存器31的值所指定的窗壁上,于是这个窗壁成为不可闭窗。不可推移窗对系统的运行至关重要,其主用途可分为两类,一类是实现对硬件指定的内存地址的访问,如系统复位后第一条指令所访问的内存地址;另一类是实现对常用程序或数据的快速访问,如对操作系统中常驻内存部分的访问。图8(A)~图8(C)中的实施例给出了针对IA32架构CPU系统的不可闭窗设置和实例,对于IA32架构CPU(如Pentium家族),系统复位后将执行位于0fffffff0H内存地址处的指令,这个位置也就是系统的实地址模式初始化程序入口。由于这个地址的高位地址线AB31~21输出全为1,使第2047号推移锁存器31被选中,则第2047号推移窗为当前推移窗;由于这个地址的低位地址线AB20~0输出为1ffff0H,于是第一条指令必须位于2047号推移窗的1ffff0H偏移地址处;由于此地址处是系统的实地址模式初始化程序入口,因此对应的窗壁必须在上电时就能访问,这要求第2047号推移窗必须在系统上电前就位于这个窗壁。满足这三点要求的方法就是给第2047号推移锁存器设定一个不能被修改的值,使2047号推移窗为不可推移窗,对应的窗壁为不可闭窗,如图8(A)中,设定2047号推移锁存器31的值为0ffffffffH,并不能被改变,则2047号推移窗被定位在4294967295号窗壁,该窗壁在字空间的起始地址为1f ffff ffe00000H,于是该窗的1ffff0H偏移地址的字空间地址为1f ffff ffe0 0000H+1f fff0H=1f ffff ffff fff0H,于是在这个地址处放置CPU1复位后要执行的第一条指令,见图8(B)。由于图8(B)中将第一条指令安排在字空间的最高端,则初始化程序只能放在其他位置,图8(B)中将其安排在从1f ffff ffe48000h的位置,这个位置在2047号映射窗中的偏移地址为1fffff ffe48000h-1fffffffe00000h=48000h,于是,第一条指令应该是一条以48000h为转移距离的相对转移指令。
在图8(B)所示的实施方式下,系统复位后执行内存地址0ffff0h处第一条指令的操作将由推移系统引导为执行字空间1ffffffffffff0h处的指令,该指令又将CPU1转移到当前映射窗内偏移地址为48000h处的实地址方式初始化程序的开始位置,随后CPU1执行初始化程序。从CPU1的角度看,整个过程与现有技术并无差别。
诸如中断矢量表、文件管理表、推移矢量表、推移窗管理表等数据结构是系统运行的基础,它们会被频繁地访问,再如键盘扫描、显示器管理、文件调度等基本操作也是经常被执行的程序模块,对这些常用数据和程序模块的访问速度将严重影响系统的运行效率和直观感觉。在现有的计算机系统中,总是把常用的数据结构和程序模块放置在内存中,以保证较高的访问速度,但这些数据和程序占用了大量内存,导致用户可用内存减少,同时导致系统的内存空间加大,这两个副作用反而减慢了系统的运行速度和变坏了用户的直观感觉。然而,使用不可推移窗很容易解决这个问题,下面分别以中断向量表、推移矢量表和操作系统的安置来说明这个技术。
如图8(B)所示的实施例中,在第4294967295号不可闭窗中安排了中断向量表、推移锁存器组(推移矢量表)、映射窗管理表、初始化程序、CPU停机状态、第一条指令等记录表和程序。其中第一条指令的位置必须与CPU1的初始状态值对应,其他内容的位置都由主板制造商设定。如图8(B)所示的将推移锁存器组3设定在1f ffff ffe0 0000h开始的8KB位置,给第0005号推移锁存器31赋值1234h的命令为:mov[ffe00014],1234h。
系统关机时将CPU1停机前的所有状态都保存入“CPU停机状态位置”,在下次开机时,初始化程序从这个位置的内容来恢复CPU1的状态,则系统就会“立即”接续关机前的工作,可快到用户感觉不到等待时间。
本发明的较佳的实施例中,于上述步骤的基础上,该系统给推移锁存器赋值的命令为给内存空间的ffe0 0000h到ffe0 1fffh赋值,而且可使用32位数据指令,赋值地址为4的整数倍。例如,本发明的较佳的实施例中,对于IA32架构的CPU,给第0005号推移锁存器赋值1234h的命令为:mov[ffe0 0014],1234h,即将第5号映射窗推移到1234h号窗壁,该窗壁的首地址为00 00002 4680 0000h。制造商只要对使用者保密不可闭窗的推移锁存器编号、该推移锁存器中的锁存值、推移锁存器组的偏移地址和推移锁存器组实际结构等项中的任何部分,使用者就很难干扰推移锁存器组。底层控制软件接受使用者或操作系统的修改推移锁存器的要求后会先检查该要求的安全性,在通过安全性检查后再代替使用者修改推移锁存器,由此来加强系统的安全性。
本发明的较佳的实施例中,如果再设定操作系统可以管理的块空间低于第4294967295号窗壁,则普通使用者不可能利用操作系统在块空间中向推移锁存器组所在存储单元存入文件的方法来修改推移锁存器。
本发明的较佳的实施例中,窗壁事先由系统在双空间存储器上进行分配。从管理窗壁的角度考虑,本发明的较佳的实施例中,在如图6中的映射窗壁划分与管理表中还必须标记出每个窗壁的属性,如是否为开窗状态、若是开窗状态则哪个映射窗定位在该窗壁中、该窗壁内存储的文件名等等。如图6中所示的窗壁划分与管理表仅以“映射窗号”、“文件名”、“文件后继窗壁”来代表这些管理信息。其中,“映射窗号”的值为当前定位在对应窗壁上的映射窗的编号,若该值为ffffh则表示该窗壁的当前状态为闭窗;“文件名”为通过双空间存储器的块空间上的文件管理系统被存储于该窗壁上的文件的名称;“文件后继窗壁”栏给出对应窗壁上的文件的相邻后继部分所在的窗壁号。显然,本发明的较佳的实施例中,“文件名”将双空间存储器上存储的文件在块空间的位置映射到了字空间,而“映射窗号”又将这个文件的字空间位置映射到了内存空间,于是CPU可以透过映射窗直接访问这个文件的存储单元。
本发明的较佳的实施例中,窗壁管理表归操作系统使用,当操作系统在块空间上存入一个文件时,则填写这个表的“文件名”和“文件后继窗壁”;当操作系统调度一个文件投入运行时,则将一个可用的映射窗定位在这个窗壁,并填写对应的“映射窗号”。因此,本发明的较佳的实施例中,映射窗壁划分与管理表与传统的外存储器的存储块管理表一致。
本发明的较佳的实施例中,若系统中只有一种窗幅,且大小等于块容量,则窗壁管理表可视为存储块管理表,因此可以纳入操作系统的文件管理系统中。
对于本发明的一个较佳的实施例中给出的不可闭窗,如果要使该不可闭窗对操作系统不可见,只需在映射窗壁划分与管理表中隐去该窗壁即可。本发明的较佳的实施例中,如图6所示的实施例中,隐去了10 00000000 0000h以上地址的窗壁。操作系统无法使用如图6所示的实施例中隐去的窗壁所对应的块空间。但是这不影响CPU透过映射窗访问这些窗壁的字空间,这为隐藏重要的不可闭窗创造了条件。在隐去的窗壁空间中字空间也不使用的部分不需安装存储器芯片,以降低造价。
为有效管理映射窗,本发明的较佳的实施例中,计算机系统可建立一个映射窗管理表来记录映射窗的使用情况(例如每个推移锁存器当前的窗位、映射窗的空闲时间、对应窗壁的内容是否允许写、文件名称、文件是否可执行、文件相邻后续内容的位置等等)。本发明的一个较佳的实施例中,如图7所示的实施例中,仅以映射窗首地址、映射窗号、可移动、窗位、文件名、数据类型、共享许可、空闲时间等为例来说明映射窗管理表的建立和使用。其中“文件名”标示该映射窗所位于的窗壁中的数据(即:映射窗中的当前数据)属于哪个文件;“数据类型”标示映射窗中当前数据的读、写和可执行的特性(即操作属性);“共享许可”标示映射窗中当前数据的共享条件;“可移动”标示该映射窗是否可以被移动(即本发明的较佳的实施例中的“是否可被重选”),即对应的推移锁存器是否可以被写入;“空闲时间”记录该映射窗上次被使用后到目前的时间,以供判断该映射窗是否适合分配给新的请求者使用。
为了系统安全的考虑,本发明的较佳的实施例中,上述映射窗管理表应由制造商提供的底层控制软件使用,其对使用者(甚至操作系统)都应当是不可见的。具体地,当底层控制软件收到一个分配映射窗的请求时,需要同时获得所需的映射窗类型、窗壁号、窗位上的文件名、该文件的数据类型、是否允许写、是否允许共享等内容。底层控制软件查映射窗管理表的空闲时间列,按照设定的算法选定一个映射窗,例如图7所示的实施例中的列表中,选定第j号的映射窗。底层控制软件按照接收到的请求信息修改映射窗管理表中第j行的内容,并用相应的推移命令给第j号推移锁存器赋予本次映射窗请求中带来的窗壁号,从而将第j号映射窗移动到指定的窗壁上。随后系统将映射窗号j反馈给请求者。请求者得到映射窗号后,将其置入映射窗壁划分与管理表中该窗壁行的“映射窗号”栏,依此完成将一个映射窗定位在双空间存储器字空间的指定窗壁的过程。本发明的较佳的实施例中,上述过程与传统地将窗壁上的数据拷贝到内存,随后将拷贝的对应的内存地址记录在内存地址的重定位管理表中的过程类似。
于上述技术方案的基础上,对于系统中各个元件的物理/逻辑连接关系的变化,以及读写操作方法中的流程中的等效元素替换,均包括在本发明的保护范围之内。
以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所做出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。