基于操作数长度和对位的微码转移制造技术

技术编号:2893436 阅读:228 留言:0更新日期:2012-04-11 18:40
一个微码转移,要转到若干可能的控制字中的一个(描述了16个控制字)。它是根据(1)余留要被左到右指令处理的操作数长度,及(2)当前驻留在主存接口寄存器的部分操作数的字节对位。当执行一条左到右指令时,确定操作数的新长度和新对位,它们二者都将存在于控制字执行之后。利用新长度和新对位来确定下一控制字的地址。一个16—路转移指令有多个转移支路,由留待处理的操作数的字节数及在两个与主存接口的存贮寄存器中的两个操作数的对位来确定转移支路。(*该技术在2008年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及数据处理系统领域,更确切地说是关系到通过从左到右的指令来管理主存中的数据的方法与设备(即从低内存地址到高内存地址或其它等效的方法处理可变长操作数),其中完成从左到右指令的微码执行这样一种转移,这种转移依据(1)操作数的长度,和(2)它的对位。该专利技术关系到微程序控制的计算机或数据处理系统。这些计算机使用最小的硬件控制。微程序控制的计算机的控制主要是一些数据门,它规定数据进出寄存器、计数器、加法器等的路径。在这一系统中,一条指令(程序指令、微码、微指令或控制字)提供数据门和一个机器周期的控制。在每一机器(CPU或系统)周期内,由控制存贮读出一条新指令。每一指令被截分为一定数目的控制字段,每一控制字段启动系统内特定的硬件控制。其中一个控制段属于(至少可以部分地定义)下一条程序的地址。在转移的情况下,利用当前指令的控制段再结合其它的数据来形成或定义下一指令地址。在这种情况下,转移地址有赖于所说的其它数据。本专利技术关系到执行一个从左到右指令时能够发生的程序转移,依据此项专利技术。其中转移地址由两个数据元素确定,即(1)在从左到右指令中所涉及的数据操作数的长度,和(2)当前在与主要数据存贮接口的两个或多个寄存器中的那部分操作数的对位。在数据处理技术中条件转移是众所周知的,下面是一些例子美国专利3,570,006描述了一个多重转移的安排,其中多个预先定义的转移地址被预先建立在多个转移地址寄存器中,在程序执行时检测转移条件。当某测试条件满足时,该事实就被存放在多个触发器中的某一特定的触发器中,扫描这些触发器使得预先定义的程序转移地址能用于存贮器寻址。美国专利3,979,725公开了一项多路程序转移的处置,其中转移地址是部分地依赖于在某个寄存器中的数据内容。更具体地说,16个只读PROM排列为4个PROM一组的4组。正在执行的16位指令中的两位被用于定PROM的地址。当条件转移出现时,指令中的另外两位用于与被确定了地址的PROM的输出相结合用来确定下一条指令的地址。所定位的PROM的输出是某寄存器中数据的函数。美国专利4,430,706公开了依据上一次程序执行时是否转移来加载下一程序地址或是选择一个转移地址的一种安排。附图说明图1显示了先前的IBM系统38数据处理系统的有关部分,当执行从左到右指令时,这种早先的系统提供一个转移表。IBM系统/38的理论维护手册SY31-0649-2描述了前面的系统,在此结合该系统引证。系统38处理系统是典型的处理多字节数据串的系统,数据串驻于主存贮10里与存贮单元一致的连续字节中。当这种先前的数据处理系统执行一个从左到右的指令时,可能有四路微码转移,它依据(1)余留要处理的部分数据操作数的字节长度,以及(2)在与主存贮10接口的两个寄存器SA和SB中的部分操作数(也可以是整个操作数)的对位。该字节长度参数存于一个8位寄存器L之中,每一寄存器SA和SB的对位参数分别存于双位寄存器A和B中。系统38的结构支持一套处理存放于主存贮10中的数据的指令。如图1所示,存贮10为一个字宽(即四个字节或32位)。当一条从左到右指令执行时,将从低存贮地址,例如11,向较高的存贮地址,例如12来处理存贮器10中的数据。系统38从左到右的指令的例子是字符传送(MVC)、逻辑字符比较(CLC)、字符与(NC)、字符或(OC)、字符异或(XC)、立即与传递字节传送(MVCL)、长字符传送(MVCL)、长逻辑字符比较。这些左到右指令都是程序员们经常采用的。这种旧系统的局限是憾悦扛龌髦芷冢ǔV荒艽硪桓鲎纸谑荨6杂诖椭噶睿绻荻晕缓统ざ仁实保梢酝贝砹礁鲎纸诨蛩母鲎纸冢钦庑枰钔庠黾踊髦芷诤臀⒙肜醇觳夂涂⒄庖荒芰Γ饩拖拗屏苏庋龅挠杏眯浴 在每一个系统38的左到右指令中,指令要包含(1)在存贮10中能找到操作数起始字节的地址,(2)从存贮器中要取操作数的长度和(3)指向存贮在所标识地址的全字长字内的操作数的首字节的指针(即字节边界13、14、15或16,操作数的存放就从这些在存贮10中定址的存贮位置开始)。操作数的字节长度计数可是任意整数,最大长度为256。通过指令如此定义的操作数,可以存在存贮10中的任何地址,並且可将其首字节调整到13、14、15或16任一字节边界上(即操作数的首字节可以开始于如11、12的任意地址,及在存贮10定址的全字的任何字节边界。边界13称为全字(FW)边界,而边界15称定半字(HW)边界。系统38主数据总线(没有显示)是4个字节宽。主存贮接口寄存器SA和SB,两者均是32位(四个字节或是一个FW)。每一个寄存器SA及SB分别配备一个两位指针寄存器A和B,如图1所示,当寄存器A包含“00”时,寄存器A指向寄存器SA中的字节0,当寄存器A包含“01”时,它指向寄存器SA中字节1,等等。在寄存器SB和指针B之间也存在同样的关系。当处理数据时,每一周期一个字节,每一周期寄存器A和B增加1,而寄存器L每一周期减1。当对应于寄存器SA或SB的一个(或两个)指针寄存器计数到“11”(假定8位寄存器L不是“00000000”)时,它表示应当存贮该存贮器的全字内容,並且/或应当取出存贮10中的下一较高地址的全字内容(FW)及加载到该寄存器中。如同在前面提到的手册的OS-070页开始所描述的那样,微指令中所包含的数据部分被用来为下一条微指令生成控制存贮地址部分。在左到右指令的情况下,下一条微指令可以是四个可能的微指令之一。每一条系统38左到右微指令包含一个称为“下一地址”的字段,该字段结合象指针寄存器A和B以及长度寄存器L的状态这样的条件(图1),提供下一条微指令的地址。在这种处置下,寄存器A、C和L的状态在周期的一开始便控制着4位左到右指令的转移。系统38的结构和处置是这样的,在同一周期内,能执行一条微指令,改变上面提到的寄存器A、B和L,並决定下一条微指令的地址。此外,寄存器SA/和SB在同一周期内都可作为源和目标两种寄存器来使用,为了完成这些功能,一个周期是很不空间的。下一指令的地址在当前执行指令周期的早期产生,这样就允许在当前周期内尽快地开始存取下一指令。如前所述,左到右指令所处理的要从存贮10加载的操作数的字节长度最初是装入到寄存器L之中的,这个字节长度包含在这个左到右指令自身之中。如前所述,这个长度参数可以长到256字节。在L寄存器中的长度值总要偏差1,例如值为0时表示长度为1。当这个左到右指令处理操作数的字节时,寄存器L的值递减,每处理一个字节减1。当寄存器L的内容变成零,或在一条微指令开始时是“00000000”,它表示该微指令处理了操作数的最后一个字节,这条左到右指令已经完成。L=0一般表示还剩下一个字节。当处理一个字节而周期开始时L是0,它表示所有的字节都已经处理完了。更确切地,在L寄存器的测试中发现“00000000”状态,该测试即引起一个地址位“1”生成,它作为下一条微指令地址的位13。上面提到的两个测试位被装配到一个14位的地址中(即0位到13位),它的12位由测试寄存器A和B生成,而它的13位由测试寄存器L生成。这两个地址位四种可能的状态是“00”,“01”,“10”,“11”。这四种状态决定了四种可能的微码转移将发生哪一本文档来自技高网...

【技术保护点】
一种转移方法,通过使用左到右程序指令处理至少一个多字节操作数,使用一个具有X字节宽总线的数据处理系统,其主要存贮器设施存放所说的操作数,并且至少有两个X字节宽的寄存器与所说的主存接口,此方法的特征表现于如下步骤:在所说的至少一个所说的寄 存器内,确定所说的操作数部分的字节对位,确定余留要被左到右指令处理的操作数字节的数目,及确定多个控制字中的哪一个将要被执行,使得在每一个机器周期处理可能处理的最大的操作数字节可变数,所说的可变数的最大值为每个周期X字节。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:朝威哈罗德英格弗利马克罗伯特富克莱尼阿兰米玛霍布鲁斯莱菲帕茨
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1