图1以方框图形式示出了按照本发明的技术构成的描述符单元SDU的最佳实施方案。由图中可看到,SDU10包括一个存贮器组12,加法器16,安全检验比较电路14和虚拟地址寄存器18。
如图所示,部件12至18的每一个都连接到内部总线20。SDU10在其与一相关的中央处理单元(CPU)的虚拟存贮器处理单元的其它部分共享的微程序控制单元30的控制下工作。这就是说,每一微指令字被分为若干部分,这些部分被分配到SDU10和该CPU的其它部分。由图可知,SDU10接受对应于信号VRDRU-15的16位微指令字。这些信号为图中未列出的电路译码,并用作为输入。Richard P.Kelley等的相关专利申请中就揭示了这样一种布局的一个实施例。但本发明的目的是将存贮单元30作为SDU10的一部分。
存贮器组12包括:一个28×32随机存取存贮器(RAM)12-1,一个内容可寻址寄存器(CAM)12-3,多个缓冲电路12-5以及如图示安排的译码电路12-7。如这里所述那样,RAM12-1的不同部分由微程序控制信号和/或从VA寄存器18来的虚拟地址信号协同寻址。
RAM12-1的28×32位存贮单元的存贮段描述字条目包括有:8个32位静态变换字(STW′S),8个32位存取控制字(ACW′S),4个32位段页表字,1个32位描述符段变址寄存器(DSBR)的高位部分,一个32位DSBR的低位部分以及6个32位工作寄存器字。CAM12-3的8个11位存贮单元存贮8个10位段号字和8个1位CAM有效位。
SDU10的工作过程包括:(1)利用自VA寄存器收到的虚拟段号询问CAM-1,以查找表明存在所需段的命中信息;(2)在未发现该段号时,发信号到VMMU的其它部分;(3)对于无效段清除CAM有效位;(4)根据命中信号置CAM条目为有效;
(5)根据需要将工作寄存器内容存入RAM12-1;(6)将页表条目存入需要设置段描述符的RAM12-1中;以及(7)在页表被存贮于RAM12-1中时,确定为DSBR所指定的页表的地址。
如这里所述,虚拟地址被分为若干区域,包括有:一个2位的段号区Sx,一个8位的段号区Sy,一个第一8位字号区ix以及一个第二8位字号区iy。ix区对应于针对段描述符的页修正值,而iy区则对应于段描述符的字修正值。
Sx和Sy区用一有效位衔接起来产生一个11毕特区,被用作CAM12-3的输入数据来对CAM12-3进行询问。CAM12-3的8字条目即被扫描,当比较存在有相同值时,CAM12-3即迫使8个命中信号线中的一条呈高位值。
由图1可见,此8条命中信号线是被用作相应的8级缓冲电路12-5的输入的。缓冲电路12-5将RAM12-1由CAM12-3隔开,并增加用来访问RAM12-1的命中信号线的信号驱动强度。
此8条命中信号线的信号用作包含有ACW′S或STW′S的RAM12-1部分的子地址。对ACW′S和STW′S的选择是在微程序控制单元30的控制下作为一个动作的功能或要进行的操作来完成的。例如,在要执行一动态地址变换操作而存贮页描述字的VMMU部分要被访问时,本发明的安排即可以使对ACW的访问可以由安全检验电路14来检验其访问的权力<例如,环形分类和访问(读,写,执行,门控),大小(即区段,门)>而且,在当一地址被用来形成未命中页描述符的地址时,本发明也可能访问STW′S来
由页表取得其它的页面。
这样,这种装置就可能在微程序控制单元30的一个完整的操作周期内完成包括所有必须检验的由虚拟地址到真实地址的变换。
作为上述地址变换的一部分,可能还要访问某些工作寄存器的内容,这是在微程序的控制下,调整译码电路12-7,利用来自BI20或VAR18的信号产生一子地址来完成的。这一根据被选择的信号源(即BI20或VAR18)的3位信号而产生的6位子地址被用来选择6个32位工作寄存器存贮单元中的一个,或者6个32位描述符段寄存器存贮单元中的一个。这被作为微程序控制单元(30)规定的要执行的特定操作功能。
这种安排免除了访问不同RAM的要求,而将这些作为ALU的输入,以便在需要时形成一个新的地址。这就要形成所希望的静态变换地址和进行必要的存取检验,仅仅只需利用由很少的微指令控制的一个CAM和译码器,从而使得控制大为简化。
利用上述的结构,使得SDU10的各部件的布局效率将最大。也就是说,RAM12-1的部件和ALU10被排为纵列,而使芯片面积和功耗为最小。图2,3a和4b表示了这种结构的各种情况。
图2详细地示出了本发明所提出的存贮器组12的构成情况。由图2可见,存贮器组12的RAM12-1包括一对RAM-1a和12-1b。每一RAM包含有:排列成14行32列位组元的组元阵列12-10,16个多路转接器电路12-12,16个读/写放大器电路12-14,以及32个予装载电路12-16。每一RAM由一列14个输入缓冲电路12-5将其与CAM12-3和译码器12-7隔离开。
缓冲电路6至13的每个第一组从CAM12-3接收输入命中信号HITO至HIT7。缓冲电路0至5的第二组由单元12-7的译码电路12-7a和12-7b中相对应的一个接收译码信号DECO至DEC5。每一列缓冲电路还包括有存贮由单元30产生的输入控制信号V79EQ7D的状态的缓冲电路12-50。这两组输入缓冲电路可以看作是通常的设计。它们的作用是将逻辑电平输入信号改变成高电平的互补输出信号。同时,这组缓冲电路还由一图中未示出的通常设置的中央定时源接收一写入保护信号WRTPROT。这一信号阻止输入信号在RAM12-1正处于予装载的时间间隔T1内进入RAM12-1。
互补输出信号OUT和
OUT分别用以控制第一和第二组缓冲电路12-5的输出。此外,缓冲电路12-5和予装载电路12-16还由中央定时源接收定时信号T11。该定时源也提供用于R/W放大器电路12-14的定时信号
T2和T12。如图所示,在微程序控制单元30的控制下产生的控制信号SAT,
SAT和
SWRTRAMR被送到多路转接器电路12-12和R/W放大器电路12-14。按照定时信号T11,RAM的组元为一般设计的予装载电路所予先装入信号。这些信息是通过R/W放大器电路12-14读出和写入RAM组元的。
每个RAM的每一RAM放大电路12-14为不同时的列位组元共享(如图示)。由微程序控制单元30发出的信号SAT和
SAT确定哪一对组元的内容应如这里所说的被多路转接器电路12-12送给R/W放大器电路12-14。
如图2所示,每一译码电路12-7a和12-7b都接收一组
由单元30或VAR18的三输入信号是作为来自微程序控制单元30的译码VRDR位7-9所产生的控制信号VRDR79EQ6的功能(即位7-9=“10”或6)经由单元12-72的多路转接器和输入缓冲电路加以引用的。
CAM12-3包括一个8×11存贮器阵列12-30,多个输入缓冲电路12-32以及多个输出缓冲电路12-34。输入缓冲电路12-32接收虚拟地址信号BV00至BV09,和由VAR18来的有效控制位信号WRT04。有效控制位信号WRTOA是由置换电路(图中未示出)产生的。在地址信号被写入CAM12-3时,此有效位置位。当地址字改变时,此有效位按通常方式更新。
CAM12-3的功能是将输入到输入缓冲电路12-32的虚拟地址与存贮于阵列12-30的垂直行或列存贮器组元中的所有8个段描述字同时进行比较,当存在有相同的比较值时,检测比较结果的垂直行将使得一连接到该垂直行所有组元的共用命中信号线成为予定的状态。CAM12-3将此同时比较的结果送给命中信号线HIT0至HIT7。这些信号分别通过缓冲电路12-5a和12-5b依次作为各自的输入送到RAM存贮器阵列12-10a和12-10b的相应的水平行组元。
输出缓冲器电路12-34将相应于信号HIT0至HIT7状态的比较结果送到替换电路。作为一组字信号线上的替换电路所产生的信号,SDWL0至SDWL7的状态作用,CAW12-3的内容被改变或被写入。针对本发明的目的来说,此替换电路可被看作是一种通常的设计。借助顺序将该8根字信号线的每一个均置为予定状态0开始时,CAM12-3即可存贮有8个描述符地址字组。
将会注意到,CAM12-3具有两组命中信号线、水平方向延伸的第一组连接到RAM12-a及12-b,垂直方向延伸的第二组连接安置于CAM12-3之上的替换电路。这由将一系列信号线相互垂直地穿过每一CAM组元来完成。这样的装置使得命中信号线和字信号线可以按所希望连接到VMMU芯片其它部分的方向来取向。其结果使得面积减小,效率和性能提高。关于CAM组元构成的进一步的信息可以参考Thomas F.Joyce等的有关专利申请。
图3a详细地示出:存贮器段12的部分构成,比较电路14,以及毕特位Q0至Q15的加法器。如图所示,阵列12-10的存贮组元,多路转接器电路12-12,R/W放大器电路12-14,以及加法器16的各单元均被排成队列或分成片。图中示出了与总线BI20的连接和至加法器单元的所需输入信号。最佳实施方案借助于比较电路14的部件和加法器16的单元,进一步减少了对芯片空间的要求。其余毕特位Q16至Q31也作相类似的安排,如图4b所示。
图3b至3f详细示出了图3a和4b的毕特位Q0至Q31的电路结构,特别是图3b示出了Q0至Q3前4位毕特的构成。如图所示,这些部分包含有在来自单元30的微程序指令信号BICTL1和BICTL2的控制下由各自的R/W放大器电路传送信号到总线BI20的放大器和晶体管。
图3C示出了毕特位Q4至Q13的最先10个加法器单元A0至A9的构成,图3d示出了毕特位Q14至Q31的加法器单元A10至A27。由这些图可以看出,加法器单元10-27中的每一个产生一对算子A和B的和数和进位传输信号,而加法器单元0-9中的
每一个则为产生单一算子的和数和进位转输信号。因此,图3C中的一半加法电路即代表图3d整个加法电路的一个被简化了的模型。
详细地说,具有代表性的图3d中的完整的加法器单元包括有:一个由增强型MOSFET16-1000,16-1032和16-1030组成的进位传输部分,一个由MOSFET16-1032至16-1046相互连接成NOR、AND、EXNOR和EXOR门电路所组成的逻辑部分,以及一个包含有反向电路16-1020和16-1022及MOSFET16-1004和16-1006的异或和数部分。此单元所产生的和数毕特(A10或S10)经由三态缓冲电路16-1016和16-1014分别作为控制信号BICTL1和BICTL2的作用被送到总线BI。控制信号CTLB被用作传送所选择的B算子值到总线BI。在由单元30译码得到的微指令信号VRDR(0)至VRDR(4)的控制下,由MOSFET16-1054至16-1058所组成的5∶1多路转接路电路被用来选择所希望的B算子值。如图示,被选择的B算子值通过反相电路16-1050和16-1052及MOSFET16-1012被送至完整的加法电路和总线BI。
图3C示出了具有代表性的加法器单元A0,它包括一个由反相器电路16-220,16-222和MOSFET16-204及16-206组成的异或门部分,以及一个由MOSFET16-200和16-202组成的进位传输部分。和数位(A0或S0)按指令信号BICTL1和BICTL2的功能分别经由三态缓冲电路16-216和16-214连接到总线BI。被加到MOSFET16-210的控制信号CTLADD被用来传送和数信号S0,而加到
MOSFET16-212的控制信号CTLB则将ZERO B算子值传给总线BI。
图3e示出了处于图4b所示的R/W放大器电路之后的最后两级加法器A28和A29。每一半加法单元针对由5∶1多路转接器电路所选择的单个B算子产生和数及进位信号。更详细地说,由图可看出,典型的加法器单元A28的结构与图3c所示的半加法器单元是相似的,只是增加了一个类似图3g中那样的多路转接器电路,用来选择B算子值。也就是说,此加法单元包含一个由增强型MOSFET16-2800和16-2802所组成的进位传输部分,以及一个由反相器电路16-2820和16-2822及MOSFET16-2804和16-2806所组成的异或电路部分。根据加在MOSFET16-2813上的控制信号CTLADD,作为指令信号BICTL2的功能,和数位B28经由三态缓冲电路16-2814被送到总线BI。加到MOSFET16-2812的控制信号CTLB被用来传送经由反相电路16-2852和16-2850及MOSFET16-2812送入的、为MOSFET16-2854至16-2858所选定的B算子B28到总线BI。
图3f所示为安全检验电路14的位比较器部分的结构。如同图4b所看到的,第一和第二组位比较器部分在图3a中所列出的加法单元A2至A11和A18至A27之间相互交替。第一组位比较器部分(C0-C9)由SDRAM12-1a接受A算子信号SSO至SS9,由VAR寄存器18接受B算子信号ix(12)至ix(21)。第二组位比较器部分(C0-C9)(图中未示出)由SDRAM12-1b接受A算子信号GSO至GS9,由VAR寄
存器18接受B算子信号Iy(22)至Iy(31)。每一位比较器部分产生一表明这A和B算子对的比较结果的进位传输信号。
详细的说,图3f的典型性的位比较器部分30包括一个由增强型MOSFET16-230至16-234组成的进位传输部分和一个由MOSFET16-236至16-246所组成的组合逻辑部分。除比较器部分C9之外,其它每一部分都由其前一部分接受一进位信号(例如CYIN(1))。B算子值ix(12)通过一反相器电路16-248加到这一部分。
可以把类似结构的比较器电路和所需的寄存器结合起来用以完成各种不同的环形校验操作。对于本发明的目的来说,用来构成各级加法器16和安全检验电路14各部分的特定的电路可被看作是通常的设计。
图3g较详细地说明了单元12-12及12-14各自的一个多路转接器和一个读/写电路。如图所示,多路转接器电路包括两对增强型MOSFET12-120,12-122和12-124,12-126。每对连接到一个不同的RAM组元,并为不同的互补控制信号SAT和
SAT中的一个所启动。
如图示,每一读/写放大器电路包括:一对予装载MOSFET12-140和12-142,一个由MOSFET12-145至12-148组成的写放大器电路。放大器电路还包括一个由互相串联的反相电路12-150和12-152及MOSFET12-154和12-156所组成的D触发器电路,以及一个包括有MOSFET12-160至12-164的三态缓冲电路。在每一操作周期的时间T1内,予装载MOSFET12-140和12-142对与高态相关的RAM位
信号线进行予装载。
D触发器电路在由定时信号T2所确定的读操作周期内被触发。这就是说,作为单元30所产生的控制信号
RWRTRAMR的功能,放大器电路12-14被置于读或写的状态。当该控制信号是二进制的“1”或高态时,它使得MOSFET对12-170和12-172将写放大器置于三态状态,其本上将其与电路分开。这样,使得它不受由一对反相器电路12-174和12-176加到其输入端的总线BI20的信号的影响。这时,如果单元30的控制信号BICTL1被置于二进制“1”或高态,D触发器电路所存贮的数据信号即被读到BI20。同时,这对互补输出信号OUT和
OUT也被送到对应的加法器16单元。
控制信号SAT的状态决定对STW RAM组元毕特位或ACW RAM组元毕特位的信息的选择。当信号SAT呈二进制“1”或高态时,STW RAM毕特位的内容即成为加法器16单元的输入信号。紧接着时间T2,当
T2
为二进制“1”时,由RAM读出的信息内容保持存贮在锁存晶体管内至另一完整的操作周期。这是由于信号
T2
使得MOSFET12-154保持其内容。
正如前面提到过的,图2中的RAM12-1a和12-1b在功能上是被安排来存贮两种类型的信息。一部分存放ACW/STW信息,而另一部分存放工作寄存器的信息。STW/ACW的8个字由CAM12-3根据一命中信息进行访问或有选择地进行访问。工作存贮器的信息则由译码器12-7按照微程序控制单元30的微指令信号加以选择而不管CAM的选择如何。
图4a和4b详细地示出了RAM12-1a和12-1b的编
排和构成。参照图4a可见,6个工作寄存器存贮单元1-6的地址被安排为0-5,并如这里所说的由微程序控制单元30进行寻址。其次的二个存贮单元7和8分别对应于描述符段的变址寄存器(DSBR)的上位和下位,也由控制单元30寻址。
DSBR指定处理单元的地址模式和现行处理地址空间。如果DSBR的最前面两字为0,则CPU处于绝对寻址工作模式,而处理的地址空间仅限于实际存贮器所存贮的一切。如果DSBR的最前面两字大于0,则CPU处于变址地址模式,其处理地址空间由DSBR所指向的描述符段表(DSPT)来确定。描述符段页表存贮单元17-20由控制单元30和/或虚拟地址的上位毕特来寻址。
段描述符存贮在段表中,它可能占有1000个64位的条目。在一处理开始时,操作系统指派所需的系统和用户段描述符到该过程。在执行该处理过程期间,根据需要将补充段以递升顺序加入段表,以使该表尽可能紧凑。最近期应用的段描述符被放在PAM12-1a和12-1b中。更确切地说,描述符根据功能被划分,并存贮在STW和ACW存贮单元。STW存贮单元9-16为控制单元30和一段CAM命中信号所寻址。ACW存贮单元21-28由控制单元30和段ACW“命中信号”寻址。
图4b详细地示出了存贮在RAM12-1a和12-1b的不同存贮单元的不同毕特位的信息型式。它也说明了加法器16的位片构成,安全单元比较器电路14以及使得布局简化、性能和密度提高的RAM组元。
由图可看出,描述符段变址寄存器上位(DSBRU)部分包括以下内容:
(1)毕特0或NS是一个新堆栈指示器。如果这一毕特被置为1,则可容许新的调用和返回指令,而俘获将可在新堆栈的适当堆栈段内取得/放弃一帧(数据)。如果毕特被置0,则不允许新的调用和返回指令,而俘获将在俘获保留区进行处理。
(2)毕特或NI是一个新的I/O指示器如果毕特置为1。I/O的执行要求新的I/O处理。
(3)毕特4-23或PGF0-19确定一页面帧号值,它对应于描述符段表(DSPT)的30位物理地址中20位高位毕特。
(4)毕特24-31或OFSO-7确定一对应于描述符段表30位物理地址的中间8毕特(该30位物理地址的其余二位低位毕特置为零)。
DSBRL由下列构成:
(1)毕特2-9或SB0-7确定堆栈基地址值。这一8比特区和2毕特现行环指定在利用新的堆栈功能时的现行堆栈段的段号。
(2)毕特24-31或PS0-9确定一个过程或段描述符表的大小。此毕特区包括一个代表最大有效段号的10毕特大小的值。如果一虚拟地址的段号大于该过程或段描述表的大小,则发出段故障信号。
描述符段页表(DSPT)条目由下列组成:
(1)毕特0为有效指示器。如果此有效位置1,则此描述符即为有效,而其余毕特指定该段描述符表的页帧号。
(2)毕特1-2或V,M分别为被采用的或被修改的指示器。对于被采用的或修正的条目,它们必须置1。
(3)毕特4-23或PGF0-19确定一相当于段描述符表
物理地址上位20毕特的页帧号值。
(4)毕特24-31或MBZ0-7被置为0,并对应于段解说符表物理地址的低8位毕特(此30位物理地址的其余二位低位毕特被置为0)。
静态变换字(STW)由下列组成:
(1)毕特0或V为有效指示器。如果此有效位置1,则该段描述符有效,而此段描述符的其余毕特即被用来完成虚拟地址到物理地址的变换和访问恰当权的校验。如果有效位置为0,则此段描述符无效,并发出段差错信息。
(2)毕特1或PR是一特权指示器。如果它被置1,则只有在环形分量为零为时才允许执行特权指令。如果它被置为0,则不允许执行任何特权指令,如遇到这一情况则发出特权指令差错信息。
(3)毕特4-23或PGF0-9标明页帧号,并相当于页描述符表30位物理地址的高20位毕特或存贮器中该段的起始。
(4)毕特24-31或OF0-7指定相应于物理地址中间8毕特的位移值。如果该段没有页,此毕特区即不用,而且必须置0。如果该段分成页面,那么它就和页号一起被指定为此段页表的起点(30位物理地址的其余2位低位毕特被置0)。
访问控制字(ACW)由下列组成:
(1)毕特0或P为分页指示器。如果其为1,该段则被分成页面,页帧号和位移区确定页表的起点。如果为0,则该段未进行分页。此页帧号指定主存中的未分页段的起点。一个未分页的段必须以一页面为单位来开始和结束,而且要由连续的页帧构成。
(2)毕特1或E为容许执行指示器。只有在此指示器为1时才
允许由该段取指,而且该处理过程在一大于或等于R1而小于或等于R2的环内进行。应注意,当此允许执行指示器处于选通而允许读指示器为禁止态时,那么该段应被作为一“仅执行”过程段来处理。一仅执行过程段被允许引用其自身内部的数据而不管是否允许读。但对其它段中的所有其它过程则是不允许读的。如果企图在一不允许执行的段中执行一指令,则发出访问差错信号。
(3)毕特2-3或R1指明该段(0-R1)的读/写类最低特权环号。就是说,在环号0-R1运行的过程(写类)可写入这一段。
(4)毕特4-5或R2指明该段(R1-R2)的读/执行类最低特权环数,就是说,一运行于环号(R1-R2)的过程可以读或执行这一段。
(5)毕特6-15或SS0-9为指定页面中段大小的段尺寸位。如果该段是分页的,此尺寸亦确定页表的大小。如果虚拟地址大于段尺寸,则发出段差错信号。
(6)毕特16或C是兼容性指示,如果置1,则执行括号从环路0扩展到R2以模拟在先存取控制过程的状态。如果置0,则执行括号从R1扩展到R2。
(7)毕特17或G是一选通指示,如果置1,则该段是一选通段。
(8)毕特18或R是允许读指示,只有在该位为1并只有在等于或大于R2的特权的环路内执行处理的情况下才允许由其它的段到该段进行数据取数。
如果试图违背允许读指示,那么就会得到一个故障信号。
(9)毕特19或W是允许写指示,只有在该位为1并只有在等于
或大于R1的特权的环路内执行处理的情况下才允许到该段进行数据存贮。
如果试图违背允许写指示,那么就会得到一个故障信号。
(10)毕特20-21或R3规定该段(R2-R3)调用括号的最少被给予特权的环路数。
(11)毕特22-31或GS0-9是选通容量字段,如果该选通指示置“1”,那么该选通容量字段规定在段的选通区域内的字数,该字段在调用指令期间使用。
如上所述,由图1中SDU10所执行的不同操作是在微编程控制单元30的控制之下进行的。这些操作由从图6a-6c中的不同的微指令来确定。图6a所表明的第一种类型微指令字确定静态地址转换操作(SAT),如图所示,该微指令字最左边两位(0,1)置为“0”。该字的其它字段对本发明不是特别重要,然而,应当注意,位地址6-9含有用于控制SDU10操作的信息。例如,位地址6存贮一个写位,位地址7-9存贮可以是从值000-111的逻辑地址,当该8进制逻辑地址是值000时,该描述符段基址寄存器(DSBR)中较高的32位被寻址;而当该8进制逻辑地址是值001时,该DSBR的较低的32位被寻址。写位6的状态用于确定是从该存贮单元中读出信息还是向该存贮单元写入信息。
8进制逻辑地址值010-101直接允许描述符段页面表项目0(DSPT0)-3(DSPT3)的寻址。8进制逻辑地址值110规定以对应于图6d所示虚拟地址字段SX较高两位的子地址去寻址4个DSPT存贮单元中的任一个,8进制逻辑地址值111允许使用该段CAM“命中”(SCH)的静态转换字(STW)的
存取。这是由该静态地址转换操作所执行的主要功能,该静态地址转换操作使用STW去转换虚拟地址,以便在遗漏页面描述符的情况下获得用于取另一个页面的页面表项目。
用于控制SDU10操作的第二种类型微指令字是一个示于图6b中被称为MSZ的杂用字段,该微指令字最左边两位的地址(0、1)被置1,位地址6-9提供如图6a中微指令字所提供的相同信息。该微指令字重新解释8进制逻辑地址位7-9,以便使能SDU10中将被存取的不同RAM存贮单元,特别是,当该8进制逻辑地址值为000-101时,工作寄存器存贮单元WR0-WR5被存取。8进制逻辑地址值111使能使用段CAM命中(SCH)的存取控制字(ACW)的存取。
示于图6c中用于控制SDU10操作的第三种类型的微指令字是一个用于规定动态地址转换DAT操作的微指令,该微指令最左边两个位地址(01)被置为“0、1”,这意味着对SDU RAM12-1中的ACW存贮单元进行存取,该SDU RAM12-1把段CAM“命中”用作子地址。DAT微指令字的其它字段虽然与理介本发明无关,但它们被用于控制转换(例如提供CAM遗漏)、存取检验(例如允许读、写等等)和环路检验操作。
示于图6d用于把虚拟地址装载到VAR寄存器18的第四种类型微指令字是被称为MSI的杂用字段,该微指令字的最左边两个位地址(01)置为“10”,地址12-14的位以如下方式控制VAR寄存器18的装载:当8进制值为“000”时,内容保持一致;当值为“001”时,从总线BI向VA寄存器装载;而当值为“010”时,该VA内容减1。8进制值“011”使VA寄存器
加1;“100”则使VA寄存器清零,而“101”也使VA寄存器加载。8进制“110”和“111”分别使其内容减2和加2。该微指令字的其它字段对本发明并不重要。
从上述可以看到,只需要少数微指令就可以平行的方式执行某些不同的操作,这种平行方式要求到单一SDU RAM12-1中的所有不同类型的寄存器存贮单元中进行存取。
现在参照图5的流程图来描述SDU10的操作。图5表示了一个典型的读存贮器顺序,如图所示,该顺序包括执行由逻辑方框图500-504所指明的操作,这些操作包括装载VAR寄存器18,把虚拟地址转换成实际地址,执行存取检验,装载从高速暂存器接收的数据并用该数据装载VAR18。详细地说就是在具有图6d所示的MSC1微指令格式的第一微指令字的控制下,具有图6e格式的虚拟地址从总线BI被装入VAR寄存器18,该地址被送到SDU10以及一未示出的页面描述符单元(PDU),该PDU与SDU操作平行地执行从20位虚拟地址到20位实际地址的页面转换。
由于PDU操作与理介本发明无关,所以不在这里描述。但作为进一步的资料,可以参考题目为“高速高密度动态转换器”的有关专利申请。
如在图5中看到的,在具有图6c所示的DAT微指令格式的第二种微指令字控制下,执行方框502的操作,虚拟地址的段号被送到CAM12-3。在等同比较情况下,SDU8个命中信号中的一个变成二进制1。假设该实际地址被送往高速暂存器并在高速暂存器读操作周期内SDU10执行必须的存取检验。即DAT微指令字使得SDU RAM12-1去存取由命中信号SCH再寻址的ACW
部份。在DAT微指令字6c的控制下,VMMU的安全检验比较器电路14使用SDU RAM12-1的ACW部分去执行环路选择、存取检验和环路简化。
由包括在安全检验电路14的环路检测逻辑电路执行环路选择,该环路检测逻辑电路除了使用当前环路寄存器(RCR),有效环路寄存器(REF)的内容以及虚拟地址(VA)的环路号的值以外,还使用了ACW的R1、R2和R3去形成一个值(RNG)。在DAT微指令环路形成控制字段位12-14的控制下,安全性被如下监督。
安全检验电路14利用ACW的位地址1-5以及位地址16去完成执行准许和环路括号检验,例如,如果比较电路14确定图6d的字段RN大于ACW字段R2(位4-5),或者如果ACW字段R1(位2-3)大于RN和ACW兼容性位16不是1,或执行准许指示位18不是1以及微指令字位6-8等于8进制1或4,则报告一个存取故障。
电路14利用ACW位地址4-5和ACW位地址18耒执行允许读和环路括号检验,例如,如果电路14检测出由值RN和REF中的较大者确定的值(REFF)大于ACW字段R2(位4-5)或允许读指示位18不是1和微指令字位6-8等于8进制的2或7,则报告一个存取故障。
另外,电路14利用ACW位地址2-3和位地址19耒执行允许写和环路括号检验,例如,如果电路14检测出REFF大于ACW字段R1(位2-3)或允许写指示位19不是1以及微指令字位6-8等于8进制4或7,则报告一个存取故障。
安全检验电路14利用ACW位地址2-5,20-21和位地址17耒执行选通允许和环路括号检验,例如,如果电路14检测出字段R1大于REF并且微指令字位6-8等于8进制5,则报告一个选通故障。最后,电路14利用ACW位地址6-15耒执行段容量检验,例如,如果电路14检测出虚拟地址的中间位12-21大于段容量位6-15,则报告一个容量故障。
在完成存取检验的情况下,在另一个MSC1微指令字的控制下,由从高速暂存器接收的实际地址所确定的数据被装入适当的CPU寄存器中并且下一个虚拟地址被装入VAR寄存器18。方框502和504的操作顺序所持续的时间和检测命中的时间一样长,其中MSC1回路和DAT微指令字要被重复存取。当检测到一个描述符遗漏状态时,就使得SDU10在控制单元30的控制下去执行为取得遗漏段描述符所需要的,由方框506-530所指明的操作顺序,页面描述符遗漏的发生也中断了该顺序的环路,并引起执行一个类似在方框506-530所表示的操作顺序,以便从贮存在高速暂存器或存贮器内的页面表中取得遗漏的页面描述符。将仅在PDU利用从SDU10存取的信息方面,对它的工作情况加以叙述。
详细址讲,具有图6d格式的虚拟地址的段号被提供给CAM12-3。在没有等同比较的情况下,所有8个命中信号都保持为二进制0,这就导致产生了由CAW12-3所检测到的遗漏状态(被检测到所有0),由于假设存在一个指明所需数据不取自高速暂存器的误差,所以微编程控制单元30通过MSC2微指令字执行一个消除操作,以便抵削或者消除将被执行的这一步。然后,控制单元30循环到遗漏的处理程序第一个存贮单元。
如方框508表明的,所执行的第一步操作是消除遗漏状态,这个操作是在SAT微指令字的控制之下进行的,SAT微指令字使除用于存贮其它状态信息以外还存贮无误差(off error)状态的出错寄存器(a syndrom register)中的适当位地址复位。另外,在另一个MSC2微指令字控制下,与写操作有关的信息被存贮在称为星形寄存器的暂存器中,如果该特定操作原耒是写操作,那么该信息允许该系统去补作一个写操作。
在完成方框506、508和510的内务处理操作的基础上,SDU10开始执行遗漏段描述符的第一步。从方框512中可以看到,在耒自微编程控制单元30的另一个SAT微指令字的控制下,SDU10产生该STW地址并将其写入CAM12-3。为了产生一个需要的地址,SDU RAM12-1中4个DSPT字存贮单元中适当的一个被存取以响应SAT微指令字。由SAT微指令字的7-9位规定的DSPT存贮单元的内容从RAM12-1中读出并送往加法器16。
如方框514所示,在下一周期中,在另外的SAT微指令字控制下,对DSPT字作遗漏检查,即检查适当的位(位0)以确定在DSPT字中是否存在遗漏(即在SDU RAM12-1中是否存在遗漏)。如果有遗漏,微编程控制单元30引起到用于解决该DSPT遗漏的子程序FIX DSPT的转移,这涉及到SDU10的使用,特别涉及到对DSBR字存贮单元所进行的存取,这种存取产生用于从存贮器中取下一个页面的地址。
在如方框516所示的下一周期中,假设有一命中,这一由在VAR寄存器18中虚拟地址的一部分和DSPT字组合而产生的地
址用于在另一个MSC2微指令字的控制下对耒自高速暂存器的SDW进行存取,该SDW是一个与虚拟地址段号有关的段表项目。
所需值由总线BI20传送给SDU10,相应于STW的段描述符字的前半部分被写入SDU RAM12-1。详细地讲,在由方框518所指明的下一周期中,写寄存器位6置1、地址位7-9置111的SAT微指令字将把STW值写入由段CAM命中所确定的SDU RAM12-1中8个STW存贮单元中的一个,即这个顺序是由于CAM遗漏而被首次输入。在从高速暂贮器接收段描述符字以前,VAR18的的虚拟地址内容被写入段CAM12-5。此时,段描述符字的STW位被写入由段CAM命中所指出的RAM存贮单元。该SAT微指令字产生信号SAT,该信号支配图2中的多路转接器电路12-12,把耒自R/W放大器12-14的信号仅加到RAM12-1a和12-1b的STW位地址。SAT微指令字位地址6的状态强迫使
SWRTRAMR信号为二进制0,从而使图3g中的R/W放大器12-14向每一个STW位存贮单元提供互补信号。
如方框520所示,在正产生地址的后半部分(即存贮在高速暂存器中的段描述符的第二双字地址)期间内,SDU10在下一个SAT微指令字的控制下,检验该段描述符字的最左位(位0)的状态,以便确定它是否是有效的段描述符,如果它不是表明它是无效的二进制1,则微编程控制单元30转移到段描述符故障程序SD-FLT,如方框520所示。这一程序按照处理故障的要求在SDU工作寄存器存贮单元中存贮丢掉的信息。
假设该段描述符是有效的,则如方框522所示,在MSC2微
指令字控制下,执行另一个读操作。此时,取出ACW并写入SDU RAM12-1,即如方框524所示,这一操作是由MS2微指令字执行的,该MS2微指令字最左边两位是11,写寄存器位6是二进制1和位7-9是111。如方框524所示,其结果是ACW被写入由位7-9和段CAM命中所规定的存贮单元,即在此时,信号SAT是二进制0,这就决定了多路转接器电路12-12所提供的信号只送到ACW位地址。位地址6的状态再一次强迫SWRTRAMR为二进制0,从而使得每个R/W放大器把互补信号送到每个ACW存贮单元。
如从方框526所看到的,除了补作方框528的操作以外,在脱离该顺序以前还要在另一个MSC2微指令字控制下执行一个进一步的净化步骤。由于SDU10已经执行了一个读操作,如方框530所示,这一操作将导致把该虚拟地址转换为用于读高速暂存器的实际地址,并导致与高速暂存器读操作相平行地执行存取检验。
下一步,该顺序返回到初始环路,由于遗漏信息被还原,由此将产生一命中,并且接收的数据将随着向VAR存贮器装载待被转换的下一个虚拟地址一起被装载。如上所述,SDU10将仍然保留在这一环路中,直到一个段或页面描述符遗漏中任何一个发生为止。在遗漏页面描述符的情况下,必须产生一页面表字PTW项目地址作为该顺序的一部分以用于标明页数的段,ACW含有用于指明该段是否被标明页数的一个二进制位,根据这一位的状态,SDU10执行用于标明页数或未标明页数段的那些操作。这是响应SAT微指令字而完成的操作,该SAT微指令字中写寄存器位6是二进制0和7-9是“111”。这样就允许SDW的STW位从SDU RAM12-1
中被读出。该STW包含存贮在高速暂存器页面表中的PTW基地址和偏移。在VAR寄存器18中的虚拟地址被用于指明特殊页面表项目。利用这个信息,在加法器16中计算出结果地址并将其存贮在STAR寄存器中。接着在STAR寄存器里它被用于从高速暂存器中取PTW。在未标明页数段的情况下,在一个不同的SAT微指令字的控制下,加法器16从STW位产生该页面描述符地址而不必到高速暂存器中进行存取。这样,该ACW存贮在执行包含注明页数和未注明页数段的地址转换操作中提供一种加法器灵活性。
从以上所述可以看到,根据本发明SDU10的结构允许在极少数微指令的控制下,通过存取在一单个RAM内一些不同类型的寄存器存贮单元耒执行多种操作。