专利名称:可编程调控交插存取存储器管理系统的制作方法
技术领域:
本发明涉及一种可编程调控交插存取存储器管理系统,特别涉及一种适用于计算机、工作站以及任何需使用存储器(Momery)等的电子逻辑线路,并采用多个特殊的缓冲器(Buffer),根据每一个处理器(Processor)或总线主控器(Bus Master)对于存取要求的特性,来适应缓冲器及存储器间的资源分配,使得每一个处理器或总线主控器能于较短的时间内,完成存储器数据存取的工作。
传统的动态随机存取存储器控制器(Dynamic Random Accessmemory Controller),采用被动的工作模式。同一时间之内只能接受和处理一个处理器或总线主控器对存储器存取数据的要求。当有第二个处理器或总线主控器同时要求对存储器存取数据时,必须等待前一个存取数据的工作结束后,才能继续进行。在传统的计算机或工作站系统中,绝大多数的时间,仅会有一个处理器或总线主控器要求使用存储器,因此存储器控制器的工作效率并不重要,使得大部分的传统计算机系统设计只强调高速缓冲存储器(CacheMemory)的功能,而忽略了存储器控制器的效率。现在由于计算机技术快速进步以及多媒体(Multi—Media)科技的发展。多处理机(Multi—Processor)的计算机系统或拥有多个总线主控器外围设备的计算机,十分普遍,这些计算机系统均有极高的机会产生两个以上的处理器或总线主控器同时要求使用存储器的现象。因此这计算机系统均要求高效率的存储器控制器,以免除因存储器使用通路成为交通瓶颈,而导致系统功能降低的问题。目前市面上的解决方法,大多着重于存储器的改进,企图减少存储器数据存取所需的时间,也就是开发更快速的存储器,或是设计多端口(Mulli—Port)的存储器,来解决存储器使用通路的瓶颈问题。例如同步动态随机存取存储器(Synchronous DRAM)等,但是这些新型的存储器往往价格较高。有些甚至要求特殊的控制线路,因此新型存储器虽能解决问题,但是并不符合经济效益。
因此,本发明的目的在于提供一种可编程调控交插存取存储器管理系统,其利用特殊的缓冲器,以及可编程控制的系统结构(Ar-chitecture),有效分配存储器资源,使每一个对存储存取的动作,尤其是同时来自两个不同的源头(Source)之存取要求,于较短的时间内完成。
本发明的另一目的在于提供一种可编程调控交插存取存储器管理系统,其可避免当多个处理器或总线主控器同时要求使用存储器,使存储器成为交通瓶颈时,导致系统性能(Performance)降低的问题。
本发明的另一目的在于提供一种可编程调控交插存取存储器管理系统,其使用可伸缩(Scalable)的硬件结构,使单端口(SinglePort)存储器能对付多个主控器同时存取数据的要求,而不需使用额外的存储装置或特殊的存储器。
本发明的再一目的在于提供一种可编程调控交插存储存储器管理系统,其可简化成非常经济的逻辑线路,适用于仅有二至三个主控器的小型计算机系统,或可扩充成复杂的数字网络,(DigitalNetwork),运用于大型矩阵计算机系统(Vector machine)。
为了达到上述目的,本发明主要包括浮动缓冲器、存取端、程控网络以及中央控制器,其以中央控制器控制各存取端拥有的浮动缓冲器的数目、各浮动缓冲器在存取端之间的移动,以及程控网络中各路径之开关,而存取端为数个浮动缓冲器所构成,且存取端并相互连接而构成一程控网络,其能应付多个主控器同时存取数据的要求,而不需使用额外的存储装置或特殊的存储器,同时,并可扩充成复杂的数字网络,运用于大型矩阵计算机系统,而处理时间也相对减少。
至于本发明的详细构造,作用与功效,则参照下列结合附图所作的说明即可得到进一步的了解
图1为本发明的浮动缓冲器结构图。
图2为本发明的存取端的结构图。
图3为本发明存取端之程控网络实施例图。
图4为本发明存取端之程控网络另一实施例图。
图5为本发明浮动缓冲器之正常操作程序流程图。
图6为本发明浮动缓冲器之维护程序流程图。
图7为本发明浮动缓冲器之要控制程序流程图。
图8为本发明存取端浮动缓冲器分配程序流程图。
图中各部件标号与名称对照如下100.…中央控制器接 1001.…中央控制信号101.…主控器流动接口102.…存储器接口1011.1021.…数据存取 1012.1022.…存取控制信号103.…控制闸 1031.…写入数据104.…数据寄存器 1041.…读取数据200.…存取端 201.…浮动缓冲器202.…主控器 203.…存储器400.…浮动缓冲器接受指令4001.…主控器要求读取数据4002.…主控器要求写入数据401.…数据是否在寄存器内402.…通知存取端控制器403.…允许主控器读取数据404.…是否符合预先提取条件405.…将虚拟地址转成实际地址406.…要求使用存储器 407.…是否允许使用存储器408.…更新寄存器数据409.…是否持有相同地址数据410.…允许数据写入 411.…发出数据更改通知500.…浮动缓冲器接受指令5001.…存取端控制器要求清除或读取数据5002.…存取端控制器要求改变浮动缓冲器状态501.…将虚拟地址转成实际地址502.…要求使用存储器 503.…是否允许使用存储器504.…从存储器读取数据或将数据写入存储器505.…修改浮动缓冲器状态506.…通知存取端控制器状态改变507.…修改浮动缓冲器状态508.…是否符合主控器存取要求509.…接受主控器指令600.…浮动缓冲器接受指令6000.…中央控制器指示浮动缓冲器移动6001.…中央控制器指示改变浮动缓冲器设定601.…通知所在存取端控制器脱离数据总线602.…通知程控网络要求移动603.…程控网络准许移动604.…前进至指定存取端605.…通知中央控制器接受新的虚拟地址转换及预先提取规则606.…通知新到达的存取端控制器连接数据总线
607.…通知存取端控制器改变浮动缓冲器至初始状态608.…接受中央控制器接受设定包含虚拟地址转换表及预先提取规则700.…存取端控制器准备接受指令701.…数据是否在任一浮动缓冲器内702.…要求中央控制器连贯维护703.…连贯维护结束704.…是否接受新的浮动缓冲器705.…接收从其它存取端移来的浮动缓冲器706.…连接存取端数据总线707.…启动浮动缓冲器接受主控器指令708.…选定最不常用或空置之浮动缓冲器709.…消除旧有数据710.…设定浮动缓冲器接受主控器指令本发明的可编程调控交插存储器管理单元,以下简称程控交插记管器(PIMMU),其可分为四个主要的部分,分别为浮动缓冲器、存取端、程控网络以及中央控制器,各部分说明如下(1)浮动缓冲器浮动缓冲器为一浮动的数字数据寄存器,它可来回游走于程控网络中,并接受中央控制器的指令,在程控网络中浮动到指定的存取端(Access Port)。每一个存取端均为特定的主控器所拥有。浮动缓冲器一旦到达指定的存取端,即成为该主控器对存储器存取数据的寄存器,在程控交插记管器中,主控器的定义如下程控交插记管器会将每一个会要求使用存储器的装置(Device),视为一个主动装置(Active Device),并将使用相同地址空间(Address Space)及具有相同存取(Access)特性的所有主动装置,视为一个主控器,一个主控器可能是一个中央逻辑运算处理器,或是所有位于区域总线的总线主控器,而程控交插记管器可经由程序的控制,或事先的设定,决定那一些主动装置归类于同一个主控器。
(2)存取端每一个主控器均有属于自己的存取端,当主控器对存储器存取数据时,均通过存取端完成存取的动作。每一个存取端均可拥有一至数个浮动缓冲器,实际的数目由中央控制器决定。当主控器要求将数据写入存储器时,这批资料将先写入浮动缓冲器内,等待中央控制器的许可,再真正写入存储器。当主控器要求从存储器读取数据时,这批数据将先由存储器存入浮动缓冲器,再允许主控器从浮动缓冲器中取得这批数据。
(3)程控网络程控网络为多个存取端所组成的完全网络(CompleteNetwork),它允许浮动缓冲器在由完全网络形成的轨道上来回移动,从一个存取端前进到另一个不同的存取端。程控网络的结构,可经由中央控制器的指令,控制每一条路径(Path)的开启或关闭。在某些特殊的情况下,中央控制器会关闭一些程控网络中的路径,以限制浮动缓冲器的运动。
(4)中央控制器中央控制器控制整个程控交插记管器的动作。其控制的项目包括每一个存取端拥有浮动缓冲器的数目。每一个浮动缓冲器的运动及存取特性,以及程控网络的网络结构。同时中央控制器必须维护所有资料的连贯性(Coherence)。尤其主控器拥有专属的高速缓冲器时,中央控制器将会检控每一批从存储器存取的数据,保证同一批数据只有一份修改过的拷贝(Modified Copy)。
图1所示为本发明浮动缓冲器的结构图,其中包含了中央控制接口100、主控器流动接口101、存储器接口102、控制闸103以及数据寄存器104,其以中央控制器接口100连接中央控制器,并以主控器浮动接口101接受中央控制器的指令,连接不同存取端的数据总线,使浮动缓冲器能游走于程控网络中;资料寄存器104为一存储装置,保存主控器对存储器读取的数据,另有一存储器接口102则连接外部之存储器,为浮动缓冲器之输出信号。
如图2所示,其为存取端的结构图,于存取端200中,由数个浮动缓冲器201所组成,且存取端200为主控器202与存储器203间的数据传递媒介,而存取端200互相之间并可做数据的传输流动(如图3、图4所示),其各存取端200间组成的完全网络,视为程控网络,每一条直线为网络的路径,浮动缓冲器可在每条路径上游走,且其路径皆由中央控制器开关设定,图中所示虚线之部分则为被关闭之路径。
而程控交插记管器包含三个主要工作程序,依次为浮动缓冲器操作程序(Folating Buffer Operating Procedure),存取端控制器(Access Port Controller)执行的浮动缓冲器分配程序(floatingBuffer Allocation Procedure),以及中央控制器扫行的数据连贯维护程序(Data Coherence Maintainance Procedure)。各个工作程序叙述如下(1)浮动缓冲器操作程序浮动缓冲器是程控交插记管器中最主要的工作装置,其基本操作分成三个层次,最底层是主控器直接对浮动缓冲器存取数据时的正常操作程序(Normal Uperating Procedure)。上一层是存取端控制器设定浮动缓冲器工作状态(Operating Status)及数据管理工作的维护程序(Maintainance Procedure)。最上层为中央控制器指示浮动缓冲器移动或设定虚拟地址转换表与预先提取资料规则的主要控制程序(Main Controlling Procedure)。较高层次的工作程序有较高的执行顺序。当高层的工作程序执行完毕后,才会将控制权转给底层的工作程序。每一个工作程序的工作内容,分别如下列叙述。
(a)正常操作程序如图5所示,当主控器要求存取数据时,每一个位于存取端的浮动缓冲器多层启动正常操作程序。正常操作程序会先检查浮动缓冲器的虚拟地址标识(Virtual Address Tag),若与主控器要求存取数据的虚拟地址相符,则表示这批数据位于数据寄存器内允许主控器直接读写这批数据。若主控器是要求读取数据,正常操作程序会在主控器读取数据完成后,预测主控器下一批可能读取的数据地址,依需要执行预先提取的工作。若主控器是要求写入数据,正常工作程序则会通知中央控制器数据已被修改,以启动中央控制器的数据连贯维护程序。
(b)维护程序浮动缓冲器可接受其停留的存取端中,存取端控制器的指令,清除数据寄存器的数据,或提取存储器的数据,或改变浮动缓冲器的状态(status)。浮动寄存器的状态包括虚拟地址标识是否有效,数据寄存器内的数据是否被修改过等有关浮动缓冲器现行的工作状况。图6为维护程序的流程图。所有上述的动作均由维护完成。维护程序在存取端控制器改变浮动缓冲器的状态后,会检验新的状态是否与可能正在等后执行的主控器存取要求相符,也就是虚拟地址标识中的地址与主控器要求存取的地址相同,若是,则启动正常操作程序。
(c)主要控制程序中央控制器可以控制每一个浮动缓冲器的运动,并可设定每一个浮动缓冲器的虚拟地址与实际地址间的转换表格(Address Map-ping Table)。所有主控器发出存取要求的虚拟地址,都需经过虚拟地址转换表才可查出在存储器中的实际地址。预先提取规则为一依照主控器存取特性而制定出的预测法则,用来预测主控器下一批可能会提取的数据并估计预测的准确性。预先提取规则制定的方式,是事先要求主控器执行所有较常用的程序或任务,同时将其所有对存储器存取的要求记录下来,然后对这批记录予以统计分析,找寻主控器的存取要求,进而制定出预测主控器下一批可能提取数据的规则,及这项规则的准确性。当浮动缓冲器处理主控器存取要求时,会检查主控器过去的存取记录及现行的存取要求,来预测主控器下一批可能会提取的数据及这项预测的准确性,若预测的准确性达到一定的上限(例如百分之七十的准确度),浮动缓冲器将会预先提取这批数据。图7为主要控制程序的流程图。当中央控制器要求浮动缓冲器移动时,浮动缓冲器会先通知目前所在的存取端,脱离该存取端的数据总线,然后移动至指定的存取端,并向中央控制器要求输入新的虚拟地址转换表与预先存取规则。最后通知新的存取端连接数据总线并接受其存取端控制器的管理。中央控制器亦可于任何时间改变浮动缓冲器的设定,以适应主控制器存取特性的转变。
(2)浮动缓冲器分配程序当主控器提出存取要求,而所需的数据不在存取端的任何一个浮动缓冲器内时,存取端控制器必须执行浮动缓冲器分配程序,以决定那一个浮动缓冲器来接受主控器的存取要求。浮动缓冲器分配程序会先通知中央控制器,启动中央控制器的连贯维护程序,以保证这批数据的连贯性与正确性。然后中央控制器会检查所有位于其它存取端的浮动缓冲器,若有任何一个浮动缓冲器拥有这批数据,只要程控网络有可通行的路径,中央控制器会无条件将这个浮动缓冲器移至目前的存取端内,接受主控器的存取要求。如果没有任何浮动缓冲器拥有这批数据,中央控制器会依照各个主控器的存取记录或特性,来决定是否要从其它存取端移动一个浮动缓冲器至目前的存取端,增加其浮动缓冲器的数目,以应付主控器存取的要求。如果浮动缓冲器分配程序接到中央控制器的指令。要接收从其它存取端来的浮动缓冲器,该程序会控制存取端数据总线,连接新来的浮动缓冲器,然后启动该浮动缓冲器,接受主控器的存取要求。不然,浮动缓冲器分配程序必须找出一个主控器较不常用的浮动缓冲器,清除其旧有数据,以接受主控器的存取要求。图8为浮动缓冲器分配程序的流程图。
(3)数据连贯维护程序中央控制器最主要的功能是在维护所有数据的连贯性。维护的方式,则依各个主控器的特性,例如主控器是否拥有专属的高速缓冲存储器,或主控器是否允许与其他主控器共有相同的数据等,来决定连贯维护的准则。基本上,中央控制器将数据分为三类一是只可读取(Ready Only)的数据,一是可共用可读写的数据,最后是不可共用但不读写的数据。对这三种不同类型的数据,数据连贯维护程序控制的原则是(a)只可读取数据允许任何主控器复制自己的拷贝,放置于专属的高速缓冲存储器或存取端的浮动缓冲器内,但不得更改这批数据。
(b)可共用可读写数据允许所有主控器复制自己的拷贝,但任何主控器企图改变这批数据时,必须通知所有其他的主控器更新或丢弃该批数据。
(c)不可共用但可读写数据主控器若要求索取这类数据时,必须先查询所有其他的主控器是否拥有相同的数据。若有,则必须等待拥有这批数据的主控器归还该批数据后,才可提取。
数据连贯维护程序首先会查询要求被维护的数据是属于那一类型,再依该类型数据的处理程序,做适当维护。除了上述三个工作程序外,中央控制器是程控交插记管器的操作控制中枢。中央控制器不但负责执行数据连贯维护程序,同时中央控制器会依照第一个主控器对存储器的存取特性,决定其存取端应拥有浮动缓冲器的数目,并适时依照各主控器存取特性的改变,或连贯维护的要求,指挥浮动缓冲器在程控网络内移动,做适当的调整。中央控制器亦可接受程序指令,改变工作的特性,例如关闭程控网络中的某条路径,或是某一主控器的预先提取规则,使得程控交插记管器能应工作环境的转变,不断调整,以取得较佳的工作效能。
由上所述可知,本发明之可编程调控交插存取存储器管理系统,其对于一个处理器或总线主控器能于较短的时间内,完成存储器数据存取的工作,并增进数据之正确性。
权利要求
1.一种可编程调控交插存取存储器管理系统,包括浮动缓冲器、存取端、程控网络以及中央控制器,其特征在于,以中央控制器控制各存取端拥有的浮动缓冲器的数目、各浮动缓冲器在存取端之间的移动,以及程控网络中各路径之开关,而存取端为数个浮动缓冲器所构成,且存取端并相互接连而构成一程控网络。
2.如权利要求1所述的可编程调控交插存取存储器管理系统,其特征在于,该浮动缓冲器包括中央控制器接口、主控器浮动接口、存储器接口、控制闸以及数据寄存器。
3.如权利要求1所述的可编程调控交插存取存储器管理系统,其特征在于,存取端为数个浮动缓冲器所构成。
全文摘要
一种可编程调控交插存取存储器管理系统,其主要包括浮动缓冲器、存储器、程控网络以及中央控制器,其以中央控制器控制各存取端拥有的浮动缓冲器的数目,各浮动缓冲器在存取端之间的移动,以及程控网络中各路径之开关,而程控网络为多个存取端所组成的完全网络,而存取端为数个浮动缓冲器所构成,其对于一个处理器或总线主控器能于较短的时间内,完成存储器数据存取的工作,并增进数据之正确性。
文档编号G06F12/00GK1129329SQ9510033
公开日1996年8月21日 申请日期1995年2月17日 优先权日1995年2月17日
发明者后健慈 申请人:徐秀莹