一种计算机系统及刀片式服务器机箱的制作方法

文档序号:18482255发布日期:2019-08-20 23:51阅读:183来源:国知局
一种计算机系统及刀片式服务器机箱的制作方法

本发明涉及计算机结构技术领域,尤其涉及一种计算机系统及刀片式服务器机箱。



背景技术:

在当前的计算机系统中,通常有两种存储方式,即外部存储器(外存)和内部存储器(内存)。外存是指除计算机内存及CPU缓存以外的存储器,特点在于断电后仍然能够保存数据。计算机系统中常见的外存有软盘存储器、硬盘存储器、光盘存储器等,目前的计算机系统中比较常用的就是硬盘。而内存是指用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据的存储器,只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来。内存的暂存性也决定其是掉电易失的,传统的计算机系统中的内存是由内存芯片、电路板、金手指等部分组成的。

由于在计算机系统的设计思路中,内存空间的设计目标是构造CPU能以字(或者字节)为单位进行随机读写的存储器,而外存空间的设计目标是在有限的存储空间内存储尽量多的数据。因此,在内存空间中构造了N+1条(N为正整数)地址线来进行随机寻址内存的内存单元,每个内存单元的数据位数与CPU的数据总线的宽度相等,这种内存结构使得存储空间中只包括2N+1个内存单元,整个内存空间的存储容量仅为2N+1个字(或字节);而对于外存空间来说,可以构造以软件表示的地址——“块编号”来进行寻址的外存单元,每个外存单元的数据位数为“块容量”。由于软件可以表达的地址位数远远大于CPU构造的地址线的数量N+1,因此外存空间的地址位数远远多于内存空间的地址位数。又由于“块容量”中所存储的数据位数远远多于CPU的数据总线的宽度,因此外存空间的存储容量亦可以远远大于内存空间的存储容量。另一方面,由于外存空间的地址由软件来表示,所以外存空间只能由系统的底层软件访问,CPU无法通过机器指令直接对外存空间中的外存单元进行读写操作。

综上所述,在传统的计算机系统中,若需要提取保存于外存空间内的数据,则CPU必须先将外存空间的数据调入内存空间中,随后才能通过机器指令对其进行随机寻址,因此内存空间和外存空间之间的映射采用了内容拷贝方式,即内存重定位技术。所谓内存重定位技术,是指在进行数据寻址时,把程序的逻辑地址空间变换成内存中的实际物理地址空间的过程,具体方法是:当CPU要用机器指令访问外存储器上的数据时,CPU首先向底层软件提出请求,底层软件对外存储器进行寻址,并将找到的数据拷贝到内存储器中,然后将这份拷贝的内存地址告知CPU。CPU随后通过机器指令对这份拷贝进行读写操作。上述传统的数据调用的方法存在着明显的缺陷,即有大量数据在外存和内存之间被执行拷贝操作,延缓了CPU机器指令对数据的访问,长时间的数据调用操作容易导致内存和外存之间的数据传送通道变得拥挤,并且增加了传送数据和调用数据的操作时间,耗费了较多的系统资源。

中国专利(CN1403921)公开了一种数据交换及存储方法与装置,涉及数据处理技术领域,用于实现在各种存储设备,包括作为外存储设备的移动存储盘和存储卡之间以及二者同数据处理系统主机之间交换数据,或者实现将从一方读出的数据存入所述三方之任何一方或两方,该技术方案中的装置自身具有数据处理能力,在所述装置不连接所述系统主机的情况下即可将外部存储设备中的数据存储到内部存储模块中、或将内部存储模块中数据存储到外部存储设备中。上述技术方案仍然局限于对外存(外部存储设备)和内存(内部存储模块)之间的数据交换进行描述和改进,无法解决现有技术中存在的问题。

中国专利(CN101000590)公开了一种读取内存中数据的方法,设置与内存控制器主时钟MCLK具有相位差Tph的采样时钟DATA_CLK,并且包括如下步骤:A、内存控制器在主时钟域下,向内存发送读控制信号和读地址;B、在采样时钟域下接收内存输出的所述读地址中存储的数据,并缓存所接收的数据;C、内存控制器在主时钟域下,读取所述缓存的数据。以及一种读取内存中数据的系统。上述技术方案仅涉及内存与处理器之间的数据交互过程,即处理器从内存中读取数据的过程,并不能解决现有技术中存在的问题。



技术实现要素:

根据现有技术中存在的问题,即传统的数据调用方法会导致外存空间与内存空间之间的数据传输通道的堵塞,增加了传送数据和调用数据的操作时间,并且耗费了较多的系统资源,现提供一种多CPU的计算机系统及刀片式服务器机箱,具体技术方案如下:

一种计算机系统,包括复数个处理器和一存储器,所述存储器包括多个存储单元并被划分成多个相等大小的存储块;每个所述存储单元具有字地址,通过字地址线进行访问;每个所述存储块具有块地址,通过块地址线进行访问,其中,

还包括:

一控制单元;

一寻址组件,所述复数个处理器内存地址线的高位分别通过所述控制单元与所述寻址组件连接,所述寻址组件与所述存储器的字地址线的高位连接,所述寻址组件可控制的在所述存储器上一连续或者不连续的预设范围内将所述复数个处理器中的一个处理器形成的内存地址的高位转化为对应的所述存储器字地址的高位并输出至所述存储器;所述复数个处理器的内存地址线的低位分别通过所述控制单元与所述存储器的字地址线的低位连接;所述预设范围小于或者等于每个所述处理器内存地址线的寻址范围;

所述控制单元选中所述复数个处理器中的一个处理器与所述存储器进行连接;

所述处理器与所述存储器连接时通过修改所述预设范围,变化所述预设范围覆盖的所述存储器的存储单元。

优选的,所述寻址组件包括多个锁存单元,每个所述锁存单元的输出端连接所述存储器的字地址线的高位,每个所述锁存单元存储一所述存储单元的字地址的高位,所有所述锁存单元存储的所述存储单元的字地址的高位覆盖的所述存储器的存储单元形成所述预设范围,所述处理器与所述存储器连接时,通过修改所述锁存单元中存储的所述存储单元的字地址的高位改变所述预设范围。

优选的,所述寻址组件包括一第一译码单元,所述第一译码单元的输入端通过所述控制单元分别与所述复数个处理器的内存地址线高位连接,所述第一译码单元的输出端与每个所述锁存单元分别连接,所述第一译码单元根据所述处理器与所述存储器连接时,形成的内存地址的高位选通对应的一个所述锁存单元进行输出。

优选的,所述存储器的存储单元按照字地址被划分成复数个大小相同的区域,每个所述锁存单元存储的所述存储单元的字地址的高位对应一个所述区域的字地址的首地址;

所述处理器修改所述锁存单元中存储的所述存储单元的字地址的高位时选择一当前目标文件所在的区域,并将选中的所述区域的首地址的高位赋值至一所述锁存单元。

优选的,多个所述锁存单元中至少包括一个第一类锁存单元,所述第一类锁存单元存储的存储单元的字地址的高位不可被修改。

优选的,所述第一类锁存单元存储的存储单元的字地址的高位对应的字地址所在的区域用以存储操作系统。

优选的,所述寻址组件包括一第二译码单元,所述第二译码单元的输入端与每个所述锁存单元的输出端分别连接,所述第二译码单元的输出端与所述存储器连接,所述第二译码单元用以根据被选中的所述锁存单元输出的所述存储器字地址的高位对所述存储器进行字地址高位部分的寻址。

优选的,所述锁存单元主要由一组锁存器形成。

优选的,其特征在于,所述第一译码单元主要由一组译码器芯片形成。

优选的,所述第二译码单元主要由一组译码器芯片形成。

优选的,所述控制单元为总线裁决器。

一种计算机系统,包括复数个处理器和一存储器,所述存储器包括多个存储单元并被划分成多个相等大小的存储块;每个所述存储单元具有字地址,通过字地址线进行访问;每个所述存储块具有块地址,通过块地址线进行访问,其中,

所述存储器被划分成与所述处理器数量匹配的复数个地址连续的存储部分;

还包括:

与所述处理器数量一致的寻址组件,所述复数个处理器中的每个处理器内存地址线的高位通过一一对应的所述寻址组件与所述存储器的所述存储部分的字地址线的高位连接,所述寻址组件可控制的在所述存储部分上一连续或者不连续的预设范围内将对应的所述处理器形成的内存地址的高位转化为对应的所述存储器字地址的高位并输出至所述存储部分;

所述复数个处理器的内存地址线的低位分别与对应的所述存储部分的字地址线的低位连接;

所述预设范围小于或者等于每个所述处理器内存地址线的寻址范围;

所述处理器通过修改所述预设范围,变化所述预设范围覆盖的所述存储部分的存储单元。

优选的,所述寻址组件包括多个锁存单元,每个所述锁存单元的输出端连接对应的所述存储部分的字地址线的高位,每个所述锁存单元存储一对应的所述存储部分中的所述存储单元的字地址的高位,一个所述寻址组件的所有所述锁存单元存储的所述存储单元的字地址的高位覆盖的对应的所述存储部分的存储单元形成所述预设范围,所述处理器通过修改对应的所述寻址组件的所述锁存单元中存储的所述存储单元的字地址的高位改变所述预设范围。

优选的,所述寻址组件包括一第一译码单元,所述第一译码单元的输入端与对应的所述处理器的内存地址线高位连接,所述第一译码单元的输出端与每个所述锁存单元分别连接,所述第一译码单元根据对应的所述处理器形成的内存地址的高位选通对应的所述寻址组件中对应的一个所述锁存单元进行输出。

优选的,所述存储器的存储单元按照字地址被划分成复数个大小相同的区域,每个所述锁存单元存储的所述存储单元的字地址的高位对应一个所述区域的字地址的首地址;

所述处理器修改对应的所述寻址组件中所述锁存单元中存储的所述存储单元的字地址的高位时选择一当前目标文件所在的区域,并将选中的所述区域的首地址的高位赋值至一所述锁存单元。

优选的,所有的所述锁存单元中至少包括一个第一类锁存单元,所述第一类锁存单元存储的存储单元的字地址的高位不可被修改。

优选的,所述第一类锁存单元存储的存储单元的字地址的高位对应的字地址所在的区域用以存储操作系统。

优选的,所述寻址组件包括一第二译码单元,所述第二译码单元的输入端与每个所述锁存单元的输出端分别连接,所述第二译码单元的输出端与对应的所述存储部分连接,所述第二译码单元用以根据被选中的所述锁存单元输出的所述存储器字地址的高位对所述存储部分进行字地址高位部分的寻址。

优选的,所述锁存单元主要由一组锁存器形成。

优选的,所述第一译码单元主要由一组译码器芯片形成。

优选的,所述第二译码单元主要由一组译码器芯片形成。

一种计算机系统,包括一存储器,所述存储器包括多个存储单元,并被划分成多个相等大小的存储块;每个所述存储单元具有字地址,通过字地址线进行访问;每个所述存储块具有块地址,通过块地址线进行访问,其中,包括:

复数个读写单元,用以形成所述存储器的字地址以及对所述存储器进行读写,每个所述读写单元主要由如上述的计算机系统中连接方式的所述复数个处理器、所述控制单元及所述寻址组件形成,或者每个所述读写单元主要由如上述的计算机系统中连接方式的一个所述处理器与对应的所述寻址组件形成;

所述复数个读写单元通过一互联电路与所述存储器连接;

所述存储器被划分成与所述读写单元数量匹配的复数个地址连续的存储部分;所述互联电路在一个读写周期内,根据每个所述读写单元的读写请求,将所述读写单元分别与不同所述存储部分连接执行所述读写请求。

优选的,所述互联电路包括译码电路以及桥接电路,

所述译码电路的输入端分别与每个所述读写单元的字地址输出端的高X位连接,X=Log2Y,Y为所述存储部分的数量,所述译码电路的输出端连接所述桥接电路的控制端;

所述桥接电路输入端分别连接每个所述读写单元的字地址输出端的低N-X位,以及每个所述读写单元的数据总线和每个所述读写单元的内存控制总线,所述桥接电路的输出端分别连接每个所述存储部分;

所述桥接电路根据所述译码电路的控制,将读写单元与被选中的存储部分连接,或者断开读写单元与所述存储部分之间的连接。

优选的,所述桥接电路包括与所述存储部分数量匹配的复数个桥接器;

每个所述桥接器的输入端分别连接每个所述读写单元的字地址输出端的低N-X位,以及每个所述读写单元的数据总线和每个所述读写单元的内存控制总线,每个所述桥接器的输出端分别对应连接一个所述存储部分;

每个所述桥接器的控制端连接所述译码电路的输出端,用以根据所述译码电路的输出选择所述桥接器联通发出读写请求的所述读写单元及被选中的所述桥接器对应的存储部分。

优选的,所述译码电路包括与所述读写单元数量匹配的复数个译码器,每个所述译码器的输入端对应连接一个所述读写单元的字地址输出端的高X位,每个所述译码器的输出端分别连接至每个所述桥接器的控制端。

优选的,所述读写单元的数量与所述存储部分的数量相同为i个,i=2,3……M。

优选的,所述互联电路包括译码电路以及桥接电路,

所述译码电路的输入端分别与每个所述读写单元的字地址输出端的高X位连接,X=Log2Y,Y为所述存储部分的数量,所述译码电路的输出端连接所述桥接电路的控制端;

所述桥接电路输入端分别连接每个所述读写单元的字地址输出端的低N-X位,以及每个所述读写单元的数据总线和每个所述读写单元的内存控制总线,所述桥接电路的输出端分别连接每个所述存储部分;

所述桥接电路根据所述译码电路的控制,将读写单元与被选中的存储部分连接,或者断开读写单元与所述存储部分之间的连接。

优选的,所述桥接电路包括与所述存储部分数量匹配的i个桥接器;

每个所述桥接器包括i个输入端,每个所述桥接器的第j号输入端连接第j号所述读写单元的字地址输出端的低N-X位,以及第j号所述读写单元的数据总线和第j号所述读写单元的内存控制总线;

每个所述桥接器包括一个输出端,第j号所述桥接器的输出端连接第j号所述存储部分。

优选的,所述译码电路包括i个译码器,第j号所述译码器的输入端对应连接第j号所述读写单元的字地址输出端的高X位;

每个所述译码器包括i个输出端,每个所述桥接器包括i个控制端,第j号所述译码器的第k号输出端连接至第k号所述桥接器的第j号控制端。

优选的,所述桥接器为i路双向三态门线列阵。

优选的,所述译码器为3-8译码器。

优选的,所述互联电路包括复数个互联电路级,相邻的两级所述互联电路级之间通过级联电路连接。

优选的,所述读写单元分成i个读写单元组,每个所述读写单元组包括i个所述读写单元,所述存储部分的数量为i x i个,i=2,3……M;所述级联电路包括i个级联单元,每个所述级联单元包括i个级联接口,所述互联电路包括两个互联电路级,两个所述互联电路级之间通过所述i个级联单元连接。

优选的,每级所述互联电路级包括i组主要由译码电路以及桥接电路形成的互联单元;

第一级互联电路级的互联单元中的所述译码电路的输入端分别与同一个读写单元组的i个所述读写单元的字地址输出端的高X位连接,X=Log2Y,Y为对应的所述读写单元组中的所述读写单元的数量;

第二级互联电路级的互联单元中的所述译码电路的输入端分别与i个读写单元组中的相同编号的一个所述读写单元的字地址输出端的高X位连接;

所述译码电路的输出端连接所属的所述互联单元的所述桥接电路的控制端;

第一级互联电路级中的互联单元的所述桥接电路的输入端分别连接一个所述读写单元组的i个所述读写单元的字地址输出端的低N-X位,以及同一个所述读写单元组的i个所述读写单元的数据总线和同一个所述读写单元组的i个所述读写单元的内存控制总线,第一级互联电路级中的互联单元的所述桥接电路的输出端分别连接一个所述级联单元的i个级联接口;

第二级互联电路级中的互联单元的所述桥接电路的输入端分别对应连接i个所述级联单元中不同的所述级联接口,第二级互联电路级中的互联单元的所述桥接电路的输出端分别连接一个所述存储部分。

优选的,所述桥接电路包括i个桥接器;

第一级互联电路级中的互联单元的桥接电路中的每个所述桥接器包括i个输入端,第一级互联电路级中的第k号互联单元的桥接电路中的每个所述桥接器的第j号输入端连接第k号读写单元组的第j号所述读写单元的字地址输出端的低N-X位,以及第k号读写单元组的第j号所述读写单元的数据总线和第k号读写单元组的第j号所述读写单元的内存控制总线;

第一级互联电路级中的互联单元的桥接电路中的每个所述桥接器包括一个输出端,第一级互联电路级中第k号互联单元的第j号所述桥接器的输出端连接第k号所述级联单元的第j号所述级联接口;

第二级互联电路级中的互联单元的桥接电路中的每个所述桥接器包括i个输入端,第二级互联电路级中的第k号互联单元的桥接电路中的每个所述桥接器的第j号输入端连接第j号级联单元的第k号所述级联接口;

第二级互联电路级中的互联单元的桥接电路中的每个所述桥接器包括一个输出端,第二级互联电路级中第k号互联单元的第j号所述桥接器的输出端连接第k x i+j号所述存储单元。

优选的,所述译码电路包括i个译码器,第一级互联电路级的第k号互联单元的第j号所述译码器的输入端对应连接第k号读写单元组的第j号所述读写单元的字地址输出端的高X位;

第二级互联电路级的第k号互联单元的第j号所述译码器的输入端对应连接第j号读写单元组的第k号所述读写单元的字地址输出端的高X位;

每个所述译码器包括i个输出端,每个所述桥接器包括i个控制端,第j号所述译码器的第k号输出端连接至所属的互联单元的第k号所述桥接器的第j号控制端。

一种刀片式服务器机箱,其中,应用于如上述的计算机系统,包括互联底板,第二级所述互联电路级以及所述级联电路设置于所述互联底板上,所述级联电路的级联接口由插槽形成,用以连接计算服务器,第二级所述互联电路的桥接器的输出端形成插槽,用以连接存储服务器,所述存储器设置于所述存储服务器中。

上述技术方案的有益效果是:

1)将多CPU计算机系统中的外存与内存合并,减少了传统系统中必需的内存芯片结构,减少了整个计算机系统的制造成本;

2)在对外存中的数据进行调用时,无需先向内存中发送一份数据拷贝,也无需在数据被修改过以后重新对外存进行更新,避免了长时间调用数据所产生的数据通道的拥堵现象,并且减少了用于数据交换的时间,提高了系统的运行效率;

3)无内存与外存之间数据交换,因而降低了了对内存命中率的要求,可降低对操作系统的要求,可提高操作系统的运行效率;

4)直接在外存空间中对数据进行读写操作,缩短了读写操作的操作时间;

5)并没有对传统的硬件存储结构做大幅度修改,应用简单,适用性广。

附图说明

图1是在单CPU环境下实现在一个存储器上构造两种存储空间,并在其上进行数据读写的实施例中,一种计算机系统的结构示意图;

图2是一种单CPU环境下计算机系统的连接结构示意图;

图3是本发明的较佳的实施例中,锁存器单元的结构示意图。

图4是本发明的较佳的实施例中,存储器的结构示意图;

图5是本发明的较佳的实施例中,多CPU分时共享双空间存储器的实施例的结构示意图;

图6是本发明的较佳的实施例中,多CPU同时共享双空间存储器的实施例的结构示意图;

图7是本发明的较佳的实施例中,多个读写单元通过互联电路同时共享双空间存储器的一种实施例的结构示意图;

图8是本发明的较佳的实施例中,多个读写单元通过互联电路同时共享双空间存储器的另一种实施例的结构示意图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。

本发明的较佳的实施例中,针对现有技术中存在的问题,即传统的多CPU计算机系统中,内存与外存分开从而导致系统调用数据时需要频繁在内存与外存之间进行数据传输和拷贝的问题,给出了一种于多CPU系统中,在一个存储器上构造两种存储空间,并在其上进行数据读写的技术方案,具体包括:

图1所示的实施例中给出了在单CPU环境下实现在一个存储器上构造两种存储空间,并在其上进行数据读写的技术方案,其中,包括处理器100和存储器200,存储器200包括多个存储单元并被划分成多个相等大小的存储块;每个存储单元具有字地址,通过字地址线210进行访问;每个存储块具有块地址,通过块地址线220进行访问,上述通过块地址线220进行访问的形式即现有技术中系统对外存进行访问的形式。

其中,还包括:一寻址组件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可主要由一组锁存器形成。

以下通过对一些具体的实施例进行说明以阐述上述技术方案的主要思想,在此之前先对一些名词进行定义。下述名词的定义仅适用于对上述技术方案做详细的解释,以有利于本领域技术人员对上述技术方案的深入理解,而非用于限定上述技术方案的实现方式。

块地址:存储器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个低位。因此,在这种情况下,块空间地址就是字空间地址的高位部分。可定义块大小为区域(即窗壁)容量的整数倍,也可以定义窗壁容量是块容量的整数倍。

如图2为对上述计算机系统的电路结构做具体描述的示意图。

该实施例中系统总体结构包括:CPU1、内存地址译码阵列2、推移锁存器组3、和双空间存储器4,原理如图2所示,其中CPU1为处理器100的一种具体实施例,内存地址译码阵列2为第一译码单元302的一种具体实施例,推移锁存器组3为多个锁存单元301的一种具体实施例,双空间存储器4为存储器200的一种具体实施例。

为了便于说明,技术方案中,均以IA32架构的CPU为例,但并不意味着上述技术方案仅能够以IA32架构实施。随着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等于推移锁存器的位数。

图2所示的实施例的工作原理为:当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。

由其工作原理可知,在图2所示的实施例中,被指派到字空间局部范围上的一段连续且不得再分割的内存地址是Ad(p-1)~0的取值,因此,这个系统的每个映射窗的窗内地址为Ad(p-1)~0,窗幅为2p,共有2(31-p)个推移锁存器,每个推移锁存器对应一个映射窗。由于每个推移锁存器有M-p位,故字空间共有2M+1字节,比内存空间大2M-31倍,分为2(M-p)个窗壁。

结合图2中的实施例,推移原理可简单说明为,假设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的字空间的用户不可见窗壁以保护推移锁存器的安全。

由于计算机系统中有一些程序和数据关乎到整个系统的安全,例如:中断向量表、任务段中的记录、推移锁存器组等,使用者一旦由于恶意或误操作而客观上修改了这些程序或数据,就会导致数据被盗、数据损坏或系统崩溃。因此计算机系统总是将这些程序和数据设定为使用者不可修改或不可见;还有一些数据在内存中的位置已经被CPU的硬件定义好,必须将它们按要求放好,否则系统无法正常工作,这些位置的数据也不允许使用者修改。

进一步地,本发明的较佳的实施例中,由于采用推移锁存器组3来进行映射窗的推移操作,但是如果使用者能随意直接推动映射窗,将给整个软件系统的安全带来致命危险,因此,任何情况下都不能允许任何使用者的应用程序来推动任何映射窗,包括不能推动它自身的映射窗,而只能向操作系统提出访问双空间存储器4的字空间的请求,由操作系统将使用者的请求变换为向底层控制软件提出映射窗请求,再由底层控制软件为使用者实施映射窗移动操作。确保使用者不能推动映射窗的办法在于不允许使用者访问推移锁存器组。达到这一目标的方法之一是将推移锁存器组安置在只有系统制造商的专用底层控制软件可以访问的双空间存储器4的字空间的特殊位置上,而且对给这个区域赋值的操作进行严格限制。另外,如果将关乎系统生命和系统自动回复的软件所对应的推移锁存器设定为不可修改,甚至将这几个映射窗的锁存器改用不可修改锁存器,则可以保证系统在任何情况下的基本安全。上述提到的不可修改锁存器即为第一类锁存器的具体实施方式。

当修改了一个推移锁存器锁存的内容时,该推移锁存器指向双空间存储器4的字空间的一个新位置,对应的映射窗就被定位在以这个新位置为窗位的窗壁上,这个窗壁的当前状态在本发明的较佳的实施例中被称为开窗,而没有被任何推移锁存器来指向的窗壁的当前状态在本发明的较佳的实施例中被称为闭窗。如果将某个推移锁存器锁存的值设定为不可修改,则相应的映射窗成为不可移动的映射窗,且这个推移锁存器就始终指向一个特定的窗壁,这个窗壁就始终处于开窗状态,成为不可闭窗。本发明的较佳的实施例中,任何状况下CPU1都能透过不可移动映射窗来访问对应的不可闭窗中的数据和程序,这为系统自动恢复创造了条件。

由于不可闭窗的位置是由系统制造商决定的,如果位于其中的推移锁存器的锁存值不能被读出,则对应不可闭窗的位置对软件使用者均不可见,甚至其对操作系统也是不可见的。使用者或操作系统对不可闭窗的访问只能请求系统制造商提供的底层控制软件来完成,这在一定程度上加强了系统的安全性。

如图3所示的实施例中示出了一种推移锁存器组3的构造的优选实施方式。推移锁存器组3是实现推移技术的核心,是一个锁存器阵列,其结构如图3所示。图中的实施例主要由8192个8位锁存器芯片74LS373形成的推移锁存器组芯片阵列301和一个推移锁存器地址译码器310组成,每4个74LS373芯片组成一个32位的推移锁存器31,编号从0000到2047,见图3的双点划线方框内结构。图中的存储芯片阵列400即存储子体42组成的集合的一种实施例。

在第r个推移锁存器31中(r=0,1,……,2047),4个锁存器芯片311的输出控制端O并接在一起,形成该推移锁存器31的输出控制端Er;4个锁存器芯片311的数据输出端Q7~0顺序排列,组成该推移锁存器31的数据输出端O31~0;4个锁存器芯片311的写入控制端G并接在一起,形成该推移锁存器31的写入控制端Ar;4个锁存器芯片311的数据写入端D7~0顺序排列,组成该推移锁存器31的数据写入端D31~0。

所有推移锁存器31的数据输出端O31~0的同下标线并接在一起,形成推移锁存器组3的数据输出线32,数据输出线32进一步的构成字空间地址线的高32位W52~21;第r个推移锁存器31的输出控制端Er受内存地址译码阵列2的一个输出引脚Or控制;所有推移锁存器31的数据写入端D31~0的同下标线并接在一起,形成推移锁存器组3的数据写入线33,数据写入线33进一步的并连接到CPU1的数据总线DB31~0;第r个推移锁存器31的写入控制端Ar受其内部的推移锁存器地址译码器310的一个输出引脚Xr控制,而推移锁存器地址译码器310的输入端J10~0接字空间地址线W12~2,推移锁存器地址译码器310的片选端IE接与门Y的输出,而与门Y的输入为字空间地址线W24~13取非和字空间高位地址译码器41的输出端HO268435455。

根据推移锁存器地址译码器310的输入端J10~0和片选端IE的连接,向第r个推移锁存器31写入数据(推移矢量值)的过程为:当字空间地址线W52~25全为1且W24~13全为0时,与门Y输出1,此时推移锁存器地址译码器310被选中,推移锁存器地址译码器310对从输入端J10~0连接的部分字空间地址线W12~2输入的内容进行译码,根据字空间地址线W12~2的值选通一个Xr输出端,该Xr控制第r个推移锁存器31的数据写入控制端Ar有效,于是CPU1可通过数据总线DB31~0将推移矢量值写入第r个推移锁存器31。由此可知:推移锁存器31的数据写入端位于双空间存储器4的字空间的高端区域,而它的数据输出端产生字空间的高位地址。这是不同于锁存器一般用法的特征。

于较优的实施例中,如图4所示,其中的虚线框给出了用1073741824片Nor Flash型RAM芯片EN29GL256(下文简称为存储芯片40)构造的双空间存储器结构,需要说明的是上述芯片的具体器件选型及数量均为说明需要,并不能以此限定本发明的保护范围。其中,包括一个字空间高位地址译码器41(第二译码单元303的一种具体实施例)和268435456个存储子体42。存储子体42从No.0000000到No.268435455编号,每个存储子体42包含4个存储芯片40,如图4中标示有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的字地址的高位部分,图4中标记为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的连接方式为:由于图4中的存储子体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的字空间的访问方式的控制为:如图4所示的实施例中,各存储芯片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地址范围内的字节寻址,由此构成图4所示系统的映射窗;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环境下实现在一个存储器上构造两种存储空间,并在其上进行数据读写的技术方案,如图5所示,一种计算机系统,包括复数个处理器100和一存储器200,存储器200包括多个存储单元并被划分成多个相等大小的存储块;每个存储单元具有字地址,通过字地址线进行访问;每个存储块具有块地址,通过块地址线进行访问,其中,还包括:一控制单元600;一寻址组件300,复数个处理器100的内存地址线110的高位分别通过控制单元600与寻址组件300连接,寻址组件300与存储器200的字地址线210的高位连接,寻址组件300可控制的在存储器200上一连续或者不连续的预设范围内将复数个处理器100中的一个处理器100形成的内存地址的高位转化为对应的存储器200的字地址的高位并输出至存储器200;复数个处理器100的内存地址线110的低位分别通过控制单元600与存储器200的字地址线210的低位连接;预设范围小于或者等于每个处理器100内存地址线的寻址范围;控制单元600选中复数个处理器中的一个处理器100与存储器200进行连接;

处理器100与存储器200连接时通过修改预设范围,变化预设范围覆盖的存储器200的存储单元。

上述实施例通过控制单元600,多个处理器100分时共享一寻址组件300,进而分时共享存储器200的同一区段或分时分享存储器200的不同区段。

在一种较优的实施例中,控制单元600可以是总线裁决器,例如8289总线裁决器。

寻址组件300的形成可采用上述技术方案中的任何一种实施形式。

如图5所示,CPU-A100和CPU-B100通过总线裁决器即控制单元600的一种实施例分时共享内存地址译码阵列2和推移锁存器组3,进而分时共享或分享双空间存储器4。当两个CPU使用的推移锁存器组3中锁存的值不同时,两个CPU100分时使用双空间存储器4字空间上的不同区段,即分时分享存储器200;而当两个CPU100使用的推移锁存器组3锁存的值相同时,或两个CPU100分时使用推移锁存器组3中同一个推移锁存器时,则这两个CPU100分时使用双空间存储器即存储器200的一种实施例的字空间上的同一个区段。在共享存储器200时要避免读写冲突,现有的解决读写冲突技术均可用。

其中内存地址译码阵列2、推移锁存器组3以及双空间存储器均可采用上述技术方案中的任何一种实施形式。

上述CPU-A100和CPU-B100可以是一台计算机中的两个CPU也可以是分别设置在两台计算机中的CPU。需要指出的是,上述实施例虽然只给出两个CPU共享存储器200的实施方式,但是不难发现,其可以被非常简单的应用到更多CPU的环境中,只需要增加控制单元600连接的处理器100数量以及提高控制单元600的处理能力即可。

本发明还提供另一种在多CPU环境下实现在一个存储器上构造两种存储空间,并在其上进行数据读写的技术方案,如图6所示,一种计算机系统,包括复数个处理器100和一存储器200,存储器200包括多个存储单元并被划分成多个相等大小的存储块;每个存储单元具有字地址,通过字地址线进行访问;每个存储块具有块地址,通过块地址线进行访问,其中,存储器200被划分成与处理器100数量匹配的复数个地址连续的存储部分203;还包括:与处理器100数量一致的寻址组件300,复数个处理器100中的每个处理器100的内存地址线的高位通过一一对应的寻址组件300与存储器200的存储部分203的字地址线的高位连接,寻址组件300可控制的在存储部分203上一连续或者不连续的预设范围内将对应的处理器100形成的内存地址的高位转化为对应的存储器200字地址的高位并输出至存储部分203;复数个处理器100的内存地址线的低位分别与对应的存储部分203的字地址线的低位连接;预设范围小于或者等于每个处理器100的内存地址线的寻址范围;处理器100通过修改预设范围,变化预设范围覆盖的存储部分203的存储单元。

该实施例通过为每个处理器100配置各自专属的寻址组件300,使多个处理器同时即并行的分享双存储器200的字空间的不同区段,其中,寻址组件300的形成可采用上述技术方案中的任何一种实施形式。

如图6所示,CPU-C100通过专属的内存地址译码阵列2和专属的推移锁存器组3,使用双空间存储器4的字空间中A53=0的低地址区段形成的存储部分203;而CPU-D100则通过专属的内存地址译码阵列2和专属的推移锁存器组3,使用双空间存储器4的字空间中A53=1的高地址区段形成的存储部分203。于是CPU-C100与CPU-D100同时使用双空间存储器4的字空间的不同区段,即CPU-C100与CPU-D100同时即并行分享一个双空间存储器4的字空间的不同存储部分203。

同样的其中内存地址译码阵列2、推移锁存器组3以及双空间存储器均可采用上述技术方案中的任何一种实施形式。

上述CPU-C100和CPU-D100可以是一台计算机中的两个CPU也可以是分别设置在两台计算机中的CPU。需要指出的是,上述实施例虽然只给出两个CPU共享存储器200的实施方式,但是不难发现,其可以被非常简单的应用到更多CPU的环境中,当增加处理器100时,只需要增加专属的寻址组件300的数量以及将存储器200划分成与处理器100数量匹配的存储部分203即可。

于上述技术方案的基础上,进一步的,本发明还提供一种基于多处理器的实施方式,如图7所示,一种计算机系统,包括一存储器200,存储器包括多个存储单元,并被划分成多个相等大小的存储块;每个存储单元具有字地址,通过字地址线进行访问;每个存储块具有块地址,通过块地址线进行访问,其中,包括:复数个读写单元ZXSi(i=2,3……M),用以形成存储器200的字地址以及对存储器200进行读写,每个读写单元主要由如上述的计算机系统中连接方式的复数个处理器100、控制单元600及寻址组件300形成,或者每个读写单元ZXSi主要由如上述的计算机系统中连接方式的一个处理器100与对应的专属寻址组件300形成;复数个读写单元ZXSi通过一互联电路与存储器200连接;存储器200被划分成与读写单元ZXSi数量匹配的复数个地址连续的存储部分203;互联电路在一个读写周期内,根据每个读写单元ZXSi的读写请求,将读写单元ZXSi分别与不同存储部分203连接执行读写请求。

该实施例通过在双空间存储器4的字空间的地址线输入端增设一个如图7所示的互联电路,通过该互联电路,使多个处理器能够同时分享或分时共享或分时分享双空间存储器4的字空间。各个处理器可以同时访问双空间存储器4的字空间的不同区段形成的存储部分203,但不允许多个处理器同时访问同一个存储部分203。

在一种较优的实施方式中,互联电路可包括译码电路800以及桥接电路900,

译码电路800的输入端分别与每个读写单元ZXSi的字地址输出端的高X位连接,X=Log2Y,Y为存储部分的数量,译码电路的输出端连接桥接电路900的控制端;

桥接电路900输入端分别连接每个读写单元ZXSi的字地址输出端的低N-X位,以及每个读写单元ZXSi的数据总线和每个读写单元ZXSi的内存控制总线,桥接电路900的输出端分别连接每个存储部分203;

桥接电路900根据译码电路800的控制,将读写单元ZXSi与被选中的存储部分203连接,或者断开读写单元ZXSi与存储部分203之间的连接。

在一种较优的实施方式中,桥接电路900包括与存储部分203数量匹配的复数个桥接器901;

每个桥接器901的输入端分别连接每个读写单元ZXSi的字地址输出端的低N-X位,以及每个读写单元ZXSi的数据总线和每个读写单元ZXSi的内存控制总线,每个桥接器901的输出端分别对应连接一个存储部分203;

每个桥接器901的控制端连接译码电路800的输出端,用以根据译码电路800的输出选择桥接器901联通发出读写请求的读写单元及被选中的桥接器901对应的存储部分203。

在一种较优的实施方式中,译码电路800包括与读写单元ZXSi数量匹配的复数个译码器801,每个译码器801的输入端对应连接一个读写单元ZXSi的字地址输出端的高X位,每个译码器801的输出端分别连接至每个桥接器901的控制端。

在一种较优的实施方式中,读写单元ZXSi的数量与存储部分203的数量相同为i个,i=2,3……M。

在此基础上,互联电路包括译码电路800以及桥接电路900,

译码电路800的输入端分别与每个读写单元ZXSi的字地址输出端的高X位连接,X=Log2Y,Y为存储部分203的数量,译码电路800的输出端连接桥接电路900的控制端;

桥接电路900输入端分别连接每个读写单元ZXSi的字地址输出端的低N-X位,以及每个读写单元ZXSi的数据总线和每个读写单元ZXSi的内存控制总线,桥接电路900的输出端分别连接每个存储部分203;

桥接电路900根据译码电路800的控制,将读写单元ZXSi与被选中的存储部分203连接,或者断开读写单元ZXSi与存储部分203之间的连接。

进一步的,桥接电路900包括与存储部分数量匹配的i个桥接器901;

每个桥接器901包括i个输入端,每个桥接器901的第j号输入端连接第j号读写单元ZXSi的字地址输出端的低N-X位,以及第j号读写单元ZXSi的数据总线和第j号读写单元ZXSi的内存控制总线;

每个桥接器901包括一个输出端,第j号桥接器901的输出端连接第j号存储部分203。

在此基础上,译码电路800包括i个译码器801,第j号译码器801的输入端对应连接第j号读写单元ZXSi的字地址输出端的高X位;

每个译码器801包括i个输出端,每个桥接器901包括i个控制端,第j号译码器801的第k号输出端连接至第k号桥接器901的第j号控制端。

在一种较优的实施方式中,桥接器901可采用i路双向三态门线阵列。

在一种较优的实施方式中,译码器801可采用3-8译码器。

上述技术方案,通过在双空间存储器4字空间的地址线输入端增设一个图7所示的互联电路,使多个读写单元ZXSi能够同时分享或分时共享或分时分享双空间存储器的字空间。各个读写单元ZXSi可以同时访问双空间存储器字空间的不同区段,但不允许多个读写单元ZXSi同时访问同一个区段。

图7所示的互联电路的实施例中,以8个读写单元ZXSi的连接形式为例进行说明。

其中,读写单元ZXSi可主要由复数个处理器100、控制单元600及寻址组件300形成,或者可主要由一个处理器100与对应的专属寻址组件300形成,也可以直接由一台服务器形成,其中处理器100可由服务器的一个或者复数个中央处理器形成,寻址组件300可形成于服务器的硬件结构中,在一种较优的实施例中服务器可采用刀片式服务器。

如图7所示,其中设置有多个CUi(i=0,1,2……)端口,每个CUi端口用于连接一个读写单元ZXSi,每个CUi端口包含一组数据总线、一组内存控制总线和对双空间存储器4字空间寻址的地址总线,其中对字空间寻址的高位地址线称为W(x-1)-0线,W(x-1)-0线用于选择双空间存储器4的字空间的不同存储部分203,而CUi端口的其余线可统称为Z总线。

还包括一组分别连接双空间存储器4各个存储部分203的端口Oi(i=0,1,2……),每个端口Oi包含一组Z总线。双空间存储器4的字空间被划分成多个连续的存储部分203,每个存储部分203的字空间地址最高p位的编码不同,每个存储部分203有各自的Z总线。

还包括一组桥接器901,桥接器901的数量与端口Oi的数目相同。每个桥接器901中包含有与CUi端口数量相同的三态门线列阵911,每个三态门线列阵911中包含与Z总线中线数目相同的双向三态门(未于图中示出);每个双向三态门线阵列911中的所有双向三态门的控制端连接在一起构成该桥接器901的i个控制端Ki(i=0,1,2……);每个双向三态门线阵列911中的所有双向三态门的同侧数据线构成这个双向三态门线阵列911的Z总线。即一个桥接器中901的各个双向三态门线阵列911的一侧Z总线连接在一起构成这个桥接器901的单端口侧输出端z,而每个双向三态门线阵列911的另一侧的Z总线分别构成该桥接器901的i个输入端di(i=0,1,2……),且i相同的Ki和di属于同一个双向三态门线阵列911。每个桥接器901的输出端z的Z总线连接到双空间存储器4的字空间的一个存储部分203的Z总线;各桥接器901的i个输入端di(i=0,1,2……)中同名端口的Z总线联结在一起,并连接到CUi端口的Z总线。

该实施例中还包括一组译码器801,译码器的数量与CUi端口的数量相同,每个译码器801各自对一个CUi端口传入的W(x-1)-0线进行译码,每个译码器801包括i个输出段,的每个输出端分别连接每个桥接器901的一个控制端Ki,其中,第j号译码器801的第k个输出端连接至第k号接桥接器901的第j号控制端Ki(j、k=0,1,2……),如:第0号译码器801的0号输出端,连接至第0号桥接器901的第0号控制端K0,第0号译码器801的1号输出端,连接至第1号桥接器901的第0号控制端K0,第0号译码器801的2号输出端,连至第2号接桥接器901的第0号控制端K0;第1号译码器801的0号输出端,连至第0号接桥接器901的第1号控制端K1,第1号译码器801的1号输出端,连接至第1号桥接器901的第1号控制端K1,第1号译码器801的第2号输出端,连接至第2号桥接器801的第2号控制端K2,以此类推。

在一种较优的实施例中,端口CU0到端口CU7分别对应连接一个读写单元ZXSi。每个读写单元ZXSi都包含有自己的内存地址译码阵列2和推移锁存器组3,而且各自的结构可以不同,可以是图5中所示的依靠总线裁决器实现的分时共享/分享存储器结构,也可以是图6所示的通过各处理器100专属的寻址组件实现的同时分享存储器结构。

进一步的,ZXS0到ZXS7和双空间存储器4中的Z端口均包含双空间存储器4的字空间的地址总线、数据总线和读写控制线中的相同成分。如:Z总线可包含:W#、DB31-0、BE#3-0和字空间地址总线中除去最高几位W(x-1)-0之外的低位地址线。

进一步的,ZXS0到ZXS7的W2-0线是字空间地址线序号最高的3条地址线,如A53-51,在图7的实施例中,由于读写单元为8个,因此x=3。

在此基础上,双空间存储器4的字空间按最高3位地址线W0,W1,和W2的编码分成8个区段,分别对应双空间存储器4的8个存储部分203,在图7中被标示为区段0到区段7,每个存储部分203设置自身的Z总线,各Z总线之间隔离。

进一步的,每个桥接器901的结构相同,如桥接器0所示,内含8路双向三态门线阵列911,每路双向三态门线阵列911用多个双向三态门芯片74LS245并联而成,每路包含的74LS245芯片数量足够控制Z总线中的所有传输线。所有双向三态门线阵列911同一侧的Z总线连在一起,构成桥接器的输出端z;8个双向三态门线阵列911各自的另一侧Z总线分别构成桥接器901的输入端di(i=0,1,2,3,4,5,6,7);每个双向三态门线阵列911包含的三态门74LS245芯片的控制端连接在一起构成该双向三态门线阵列911的控制端Ki(i=0,1,2,3,4,5,6,7),控制端Ki控制桥接器901数据端口di和z端口的联通。

进一步的,各个桥接器901的同名输入端di的Z总线连在一起,并与一个CUi(i=0,1,2,3,4,5,6,7)端口的Z总线连接,要求输入端di与CUi的i值相同。如8个桥接器901的d0端连在一起,并连接接到CU0端口的Z总线。其余7个端口的接法相同。

在此基础上,第0号3-8译码器801到第7号3-8译码器801均为74LS138芯片。3-8译码器801的三个输入端c、b和a接CUi的W2-0端(i=0,1,2,3,4,5,6,7),且每个3-8译码器801的输入端与对应CUi端口的W2-0的接线顺序相同。

在此基础上,第j号3-8译码器801的第k号输出端(j,k=0,1,2,3,4,5,6,7)连接第k号桥接器901的第j号控制端Ki。如第0号3-8译码器801的第0号输出端连第0号接桥接器901的控制端K0,第1号输出端连接第1号桥接器901的控制端K0,第2号输出端连接第2号桥接器901的控制端K0;而第2号3-8译码器801的第0号输出端连接第0号桥接器901的控制端K2,第1号输出端连接第1号桥接器901的控制端K2,第2号输出端连接第2号桥接器901的控制端K2,以此类推。

上述技术方案中,互联电路的工作原理为:

当接在端口CUi的读写单元ZXSi要访问双空间存储器4的字空间的第k个存储部分203时(i,k=0,1,2,3,4,5,6,7),ZXSi的W2-0线送出编码k;编码k通过端口CUi进入第j号3-8译码器801的输入端c、输入端b和输入端a。

在此基础上,第j号3-8译码器801的第k号输出端出现有效电平。3-8译码器801的有效电平为低电平,因此可通过连接一个非门(图7的实施例中的小圆圈示意取反),转换成对桥接器901控制端的有效信号——高电平。

在此基础上,效电平被送到第k号桥接器901的第j个控制端Ki,于是,第k号桥接器901中的第j个双向三态门线阵列911导通,于是第k号桥接器901的输出端z的Z总线与输入端di的Z总线连通。

进一步的,第k号桥接器的输出端z通过端口Oi连接着双空间存储器字空间第k号存储部分203的Z总线,而第k号桥接器901的输入端di通过互联电路的CUi端口连接着ZXSi,此时ZXSi是第i号读写单元。于是,第i读写单元的Z总线通过第k号桥接器901的输入端di与输出端z间的桥接通道(双向三态门线阵列911)连接到双空间存储器4的字空间第k个存储部分203的Z总线。

在此基础上,第i号读写单元通过上述形式访问双空间存储器4的字空间第k号存储部分203。

需要指出的是,上述技术方案中任何时间都不允许两个不同的端口Cui送入相同的W2-0的编码,如果发生这种错误,则两个不同的端口Cui的Z总线将在W2-0的编码所指定的桥接器901中连通,导致连接在这两个端口Cui的两个读写单元的寻址和数据混乱。即不允许多个读写单元同时访问双空间存储器4的字空间的同一个存储部分203。现有技术中,实现这一要求的互锁技术比较多,而且比较成熟,因此不再赘述。

于上述技术方案基础上,本发明还提供一种互联电路的实现形式,现以以下实施例进行说明。

于一种较优的实施方式中,如图8所示,互联电路可包括复数个互联电路级920,相邻的两级互联电路级920之间通过级联电路930连接。

在此以两个互联电路级为例进行说明,需要指出的是并不以此说明限制本发明只能以两个电路级进行实施。在此实施方式中,读写单元分成i个读写单元组,每个读写单元组包括i个读写单元,存储部分203的数量为i×i个,i=2,3……M;级联电路930包括i个级联单元931,每个级联单元931包括i个级联接口933,互联电路包括两个互联电路级920,两个互联电路级920之间通过i个级联单元931进行连接。

于上述技术方案基础上,进一步的,每级互联电路级920包括i组主要由译码电路800以及桥接电路900形成的互联单元932;

其中第一级互联电路级921的互联单元932中的译码电路800的输入端分别与同一个读写单元组的i个读写单元的字地址输出端的高X位连接,X=Log2Y,Y为对应的读写单元组中读写单元的数量;在此实施例中由于对应读写单元组中读写单元的数量为8个,因此X=3。

第二级互联电路级922的互联单元932中的译码电路800的输入端分别与i个读写单元组中的相同编号的一个读写单元的字地址输出端的高X位连接;

译码电路800的输出端连接所属的互联单元932的桥接电路900的控制端;

第一级互联电路级921中的互联单元932的桥接电路900的输入端分别连接一个读写单元组的i个读写单元的字地址输出端的低N-X位,以及同一个读写单元组的i个读写单元的数据总线和同一个读写单元组的i个读写单元的内存控制总线,第一级互联电路级921中的互联单元932的桥接电路900的输出端分别连接一个级联单元的i个级联接口;

第二级互联电路级922中的互联单元932的桥接电路900的输入端分别对应连接i个级联单元931中不同的级联接口933,第二级互联电路级922中的互联单元932的桥接电路900的输出端分别连接一个存储部分203。

于上述技术方案基础上,进一步的,桥接电路900可包括i个桥接器;将i个读写单元组依次进行编号。

第一级互联电路级921中的互联单元932的桥接电路900中的每个桥接器901包括i个输入端,第一级互联电路级921中的第k号互联单元932的桥接电路900中的每个桥接器901的第j号输入端连接第k号读写单元组的第j号读写单元的字地址输出端的低N-X位,以及第k号读写单元组的第j号读写单元的数据总线和第k号读写单元组的第j号读写单元的内存控制总线;

第一级互联电路级921中的互联单元的桥接电路900中的每个桥接器901包括一个输出端,第一级互联电路级921中第k号互联单元932的第j号桥接器901的输出端连接第k号级联单元931的第j号级联接口933;

第二级互联电路级922中的互联单元932的桥接电路中的每个桥接器901包括i个输入端,第二级互联电路级922中的第k号互联单元932的桥接电路900中的每个桥接器901的第j号输入端连接第j号级联单元931的第k号级联接口933;

第二级互联电路级922中的互联单元932的桥接电路中的每个桥接器901包括一个输出端,第二级互联电路级922中第k号互联单元932的第j号桥接器901的输出端连接第k x i+j号存储单元203。

于上述技术方案基础上,进一步的,译码电路800可包括i个译码器801,第一级互联电路级921的第k号互联单元的第j号译码器801的输入端对应连接第k号读写单元组的第j号读写单元的字地址输出端的高X位;

第二级互联电路级922的第k号互联单元的第j号译码器801的输入端对应连接第j号读写单元组的第k号读写单元的字地址输出端的高X位;

每个译码器801包括i个输出端,每个桥接器901包括i个控制端,第j号译码器801的第k号输出端连接至所属的互联单元932的第k号桥接器901的第j号控制端。

图8所示的实施例中,包含16个如图7中所示的互联电路,在图5中简称为“总线互接电路”,16个互联电路分为第一级互联电路级-7~-0和第二级互联电路级-7~-0,第一级互联电路级和第二级互联电路级分别包括8个互联电路。还包括8个级联单元931,每个级联单元931包含8个级联接口933。

前级(1级)总线互接电路的每个输出端接入一个级联插口的一个插槽,而第i号级联插口的第j号插槽连接第j号后级(2级)总线互接电路的第i个输入端口。第一级互联电路级921的输出的Z总线经过级联单元931的级联接口933到达第二级互联电路级922的输入端时,分离出字空间地址总线的次高3位(Z总线中包含的字空间地址线的最高3位),并将这3位字空间地址线接入第二级互联电路级的输入端WZ2-0,用于选择第二级互联电路级922的输出端;而Z总线的剩余线组成Z’总线,Z’总线通过第二级互联电路级接入双空间存储器4的字空间一个存储部分203的Z’总线。

该实施例中,8×8个读写单元分别连接第一级互联电路级921的一个输入端,则通过该实施例可以实现同时分享、分时共享或分时分享一个双空间存储器4的字空间。

本发明的实施例中还包括一种刀片是服务器机箱结构,用以容纳多个刀片式服务器,其中将级联接口和第二级互联电路级制作在机箱底板上,将级联接口作为计算服务器的连接接口,将第二级互联电路级的输出端口作为存储服务器的插槽。

通过上述实施方式,使机箱内的多个计算服务器能够同时分享、分时共享或分时分享一个双空间存储器(设置于存储服务器中)。从而免除了大量数据从外存储器向各个计算服务器内存复制的过程,而且可以消除个个计算服务器交换数据时的相互复制。需要指出的是,该实施方式并不允许多个计算服务器同时访问双空间存储器的字空间的同一个区段。

若设置更多的互联电路级,可构成一定规模的超级计算机系统。在这种结构的超级计算机系统中,所有读写单元能够同时分享同一个双空间存储器的不同区段和分时共享同一个双空间存储器的同一个区段,从而构成了共享存储器结构的超级计算机系统;并且任何时刻每个读写单元都有独立的内存空间,有形成了一个典型的集群计算机系统。即两种超级计算机系统可同时实现在上述技术方案的结构下。

在这种结构的机箱中,双空间存储器可被设置在一个存储器服务器中,插在机箱的存储插槽上。

在这种结构的机箱中,各CPU被设置在计算服务器中,插在机箱的计算插槽上。

本发明还提供另一种刀片是服务器机箱结构,用以容纳多个刀片式服务器,其中,一一对应地构造出每个刀片服务器插口的Z总线与双空间存储器字空间各个存储部分的Z总线的直连线。双空间存储器仍设置在存储刀片服务器中,并插入机箱的存储器插槽;CPU设置于在计算刀片服务器中,并插入机箱的计算插槽。

这样的机箱结构简单,并且机箱内所有刀片服务器上的双空间存储器的字空间顺序相接,形成一个统一的双空间存储器的字空间,而且是同一个外存空间;机箱内的各刀片服务器可以同时使用一个双空间存储器的字空间的不同区段。

于上述技术方案的基础上,对于系统中各个元件的物理/逻辑连接关系的变化,以及读写操作方法中的流程中的等效元素替换,均包括在本发明的保护范围之内。

以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所做出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1