发明名称 用于堆叠机器之指令摺叠方法及装置
摘要 本发明系提供一种用于堆叠机器之指令摺叠装置及方法,用来摺叠预定数目个待执行指令。指令摺叠装置包括有待摺叠指令暂存器、指令摺叠器、合并长度检查器、摺叠后指令暂存器、来源位址产生单元以及存放位址产生单元。至于,本发明用于堆叠机器之指令摺叠方法,主要系使指令执行单元在执行待执行指令前,可依待摺叠指令的指令码找出所需的资料,并利用检查待摺叠指令所对应的资料,以判断相连指令间是否可摺叠合并,来预先摺叠合并一预定数目待摺叠指令中可摺叠合并的待摺叠指令,以节省运算时间。
申请公布号 TW477936 申请公布日期 2002.03.01
申请号 TW087121769 申请日期 1998.12.29
申请人 财团法人工业技术研究院 发明人 张隆昌;唐立人;高敏富;锺崇斌
分类号 G06F15/80 主分类号 G06F15/80
代理机构 代理人
主权项 1.一种用于堆叠机器之指令摺叠装置,包括:一待摺叠指令暂存器,用来储存一预定数目个待摺叠指令之指令码及运算子;一指令摺叠器,用来接收该待摺叠指令之指令码,并比较一前面指令之指令码所对应的存放装置种类与后面的待摺叠指令之指令码所对应的来源装置种类是否有相同的形式,及比较前面指令之指令码所对应的存放资料长度与后面的待摺叠指令之指令码所对应的来源资料长度是否相同,并利用一POC分类合并规则与一资料位置储存规则,判断该前面指令与后面的待摺叠指令可否摺叠合并,若不可摺叠合并,则输出前面指令所对应的指令码、来源装置种类及存放装置种类,若可摺叠合并,则依据一POC分类合并规则检查一前面指令之指令码之POC类别与后面的该待摺叠指令之指令码之POC类别,以产生一摺叠数量讯号,并依据一资料位置储存规则产生输出一可摺叠合并的暂时指令所对应的来源装置种类及存放装置种类,并藉由该待摺叠指令之POC类别与该摺叠数量讯号选出一首要指令码;一合并长度检查器,用来接收该待摺叠指令暂存器内之该待摺叠指令所对应的指令码及运算子的位置和长度资料,并配合该指令摺叠器所输出之该摺叠数量讯号检查经运算后的该待摺叠指令之合并数量;一摺叠后指令暂存器,用来接收经由该指令摺叠器输出的该处理后指令的来源装置种类、存放装置种类,该指令码所对应的运算子,以及被选出的该首要指令码;一来源位址产生单元,用来接收该摺叠后指令暂存器所储存的该来源装置种类及该来源装置种类所对应的基础位址(base address),若该待摺叠指令具有该指令码相对应的运算子,则进一步组合该来源装置种类所对应的运算子之运算子指标(index),以产生该来源位址;一存放位址产生单元,用来接收该摺叠后指令暂存器所储存之存放装置种类,以及该存放装置种类所对应的基础位址,若待摺叠指令包括指令码所对应的运算子,则进一步组合该存放装置种类所对应的运算子之运算子指标,以产生该存放位址。2.如申请专利范围第1项所述之指令摺叠装置,其中该指令摺叠器进一步包括:一属性记忆体,用来接收该待摺叠指令暂存器之该待摺叠指令之该指令码,并由各个该指令码转换为其所对应的POC类别、来源装置种类、来源资料长度、存放装置种类、存放资料长度以及识别讯号;至少一双指令合并单位,用来接收该属性记忆体输出之该前面指令与后面的该待摺叠指令之POC类别、来源装置种类、来源资料长度、存放装置种类以及存放资料长度,并检查前面指令与后面的该待摺叠指令是否可依该POC分类合并规则与该资料位置储存规则合并,若不可合并则保持前面指令之来源装置种类、来源资料长度、存放装置种类以及存放资料长度,否则将前面指令与后面的该待摺叠指令之POC类别、来源装置种类、来源资料长度,存放装置种类以及存放资料长度予以合并,以形成一暂时指令,而该暂时指令资料包括合并后之POC类别、来源装置种类、来源资料长度、存放装置种类以及存放资料长度,且该双指令合并单位会产生用来表示摺叠数量的该摺叠数量信号以及依据该POC分类合并规则产生用来表示是否继续检查该后面的待摺叠指令之可摺叠性的一继续信号;一首要指令码选择器,用来接收该属性记忆体所输出之该识别讯号及该双指令合并单位所输出之摺叠数量讯号,并根据该识别讯号来选出首要指令码;以及一多工器,用来依据该双指令合并单位所输出的该摺叠数量讯号来选择处理后指令的该来源装置种类及该存放装置种类。3.如申请专利范围第2项所述之指令摺叠装置,其中该双指令合并单位系以层叠(cascade)的方式串接前一该双指令合并单位,其中每一该双指令合并单位可检查前面指令与后面的待摺叠指令是否可依据该POC分类合并规则与该资料位置储存规则摺叠合并。4.如申请专利范围第2或3项所述之指令摺叠装置,其中该双指令合并单位进一步包括:一POC运算器,用来依据该POC分类合并规则,检查该前面指令与后面的该待摺叠指令之POC类别,并产生该摺叠数量信号、该继续信号以及一摺叠分类信号;以及一资料位置选择器,用来依据该资料位置储存规则与该POC合并后组成信号,来决定该前面指令与后面的该待摺叠指令是否可摺叠合并,若可摺叠合并,则输出合并后之该暂时指令的来源装置种类、来源资料长度、存放装置种类及存放资料长度,若不可合并,则保持前面指令之来源装置种类、来源资料长度、存放装置种类以及存放资料长度。5.如申请专利范围第4项之指令摺叠装置,其中该POC运算器进一步包括:一选择电路,用来依据该POC分类合并规则由该前面指令之POC类与后面的该待摺叠指令之POC类别中选出该暂时指令之POC类别;一另一多工器,用来依据该选择电路的输出,来产生该该暂时指令之POC类别;以及一判断电路,用来依据该前面指令之POC类与后面的该待摺叠指令之POC类别及该双指令合并单位传来之该继续信号来产生该摺叠数量信号及另一继续信号。6.一种可摺叠指令堆叠机器,包括:一指令快取记忆体,用来撷取并储存复数个待执行指令;一指令环形缓冲器,用来再撷取并储存该待执行指令中一预定数目个待摺叠指令;一指令码检查器,用来找出在该该待摺叠指令所对应指令码及运算子之位置及长度资料;一程式控制器,根据该指令码之长度资料来控制该指令快取记忆体所存该待执行指令与该指令环形缓冲器内所存该待摺叠指令之读出与位移;一指令摺叠装置,用来接收该待摺叠指令之该指令码及该运算子,并比较该前面指令之存放装置种类与后面的待摺叠指令之来源装置种类是否有相同的形式,及比较前面指令之存放资料长度与后面的待摺叠指令之来源资料长度是石相同,且依据一POC分类合并规则与一资料位置储存规则,检查一前面指令之指令码与后面的该待摺叠指令,以判断该前面指令与后面的待摺叠指令可否摺叠合并,以产生一处理后指令之一来源位址、一存放位址及一首要指令码;一解码器、用来将该首要指令码依其所对应的指令码格式解码后输出一控制信号;一执行指令储存器,用来储存该处理后指令之该来源位址、该存放位址以及该控制信号;以及一指令执行单元,用来接收该控制信号、该来源位址以及该存放位址,并根据该控制信号、该来源位址及该存放位址,经由指定的一局部变数暂存器、一运算堆叠器或一常数暂存器来存取资料,以执行经摺叠合并后或不可摺叠合并的该待执行指令。7.一种用于堆叠机器之指令摺叠方法,包括以下步骤:a.使用一待摺叠指令暂存器,来储存一预定数目个待摺叠指令之指令码及运算子;b.使用一指令摺叠器,来接收该待摺叠指令之指令码,并比较一前面指令之指令码所对应的存放装置种类与后面的待摺叠指令之指令码所对应的来源装置种类是否有相同的形式,及比较前面指令之指令码所对应的存放资料长度与后面的待摺叠指令之指令码所对应的来源资料长度是否相同,并利用一POC分类合并规则与一资料位置储存规则,判断该前面指令与后面的待摺叠指令可否摺叠合并,若不可摺叠合并,则输出一前面指令所对应的指令码、来源装置种类及存放装置种类,若可摺叠合并,则依据一POC分类合并规则检查一前面指令之指令码之POC类别与后面的该待摺叠指令之指令码之POC类别,以产生一摺叠数量讯号,并依据一资料位置储存规则产生输出一可摺叠合并的暂时指令所对应的来源装置种类及存放装置种类,并藉由该待摺叠指令之POC类别与该摺叠数量讯号选出一首要指令码;c.使用一合并长度检查器,来接收该待摺叠指令暂存器内之该待摺叠指令所对应的指令码及运算子的位置和长度资料,并配合该指令摺叠器所输出之该摺叠数量讯号检查经运算后的该待摺叠指令之合并数量;d.使用一摺叠后指令暂存器,来接收经由该指令摺叠器输出的处理后指令的该来源装置种类、该存放装置种类,该指令码所对应的运算子,以及被选出的该首要指令码;e.使用一来源位址产生单元,来接收该摺叠后指令暂存器所储存的该来源装置种类及该来源装置种类所对应的基础位址,若该待摺叠指令具有该指令码相对应的运算子,则进一步组合该来源装置种类所对应的运算子之运算子指标(index),以产生该来源位址;f.使用一来源位址产生单元,来接收该来源装置种类及该来源装置种类所对应的基础位址,若该待摺叠指令具有该指令码相对应的运算子,则进一步组合该来源装置种类所对应的运算子之运算子指标,以产生该来源位址;g.使用一存放位址产生单元,来接收该摺叠后指令暂存器所储存之存放装置种类,以及该存放装置种类所对应的基础位址,若待摺叠指令包括指令码所对应的运算子,则进一步组合该存放装置种类所对应的运算子之运算子指标,以产生该存放位址。8.如申请专利范围第7项所述之指令摺叠方法,其中该步骤b进一步包括以下步骤:b.1使用一属性记忆体,来接收该待摺叠指令暂存器之该待摺叠指令之该指令码,并由各个该指令码转换为其所对应的POC类别、来源装置种类、来源资料长度、存放装置种类、存放资料长度以及识别讯号;b.2使用至少一双指令合并单位,来接收该属性记忆体输出之该前面指令与后面的该待摺叠指令之POC类别、来源装置种类、来源资料长度、存放装置种类以及存放资料长度,并检查前面指令与后面的该待摺叠指令之POC类别是否可依该POC分类合并规则与该资料位置储存规则合并,若不可合并则保持前面指令之来源装置种类、来源资料长度、存放装置种类以及存放资料长度,否则将前面指令与后面的该待摺叠指令之POC类别、来源装置种类、来源资料长度、存放装置种类以及存放资料长度予以合并,以形成一暂时指令,而该暂时指令资料包括合并后之POC类别、来源装置种类、来源资料长度、存放装置种类以及存放资料长度,且该双指令合并单位会产生用来表示摺叠数量的该摺叠数量信号以及依据该POC分类合并规则产生用来表示是否继续检查该后面的待摺叠指令之可摺叠性的一继续信号;b.3使用一首要指令码选择器,来接收该属性记忆体所输出之该识别讯号及该双指令合并单位所输出之摺叠数量讯号,并根据该识别讯号来选出首要指令码;以及b.4使用一多工器,来依据该双指令合并单位所输出的该摺叠数量讯号来选择输出的该来源装置种类以及该存放装置种类。9.如申请专利范围第8项所述之指令摺叠方法,其中该步骤b.2进一步包括以下步骤:b.2.1使用一POC运算器,依据该POC分类合并规则检查该前面指令与后面的该行摺叠指令之POC类别,并产生该摺叠数量信号、该继续信号以及一摺叠分类信号;以及b.2.2使用一资料位置选择器,来依据该资料位置储存规则与该POC合并后组成信号,来决定该前面指令与后面的该待摺叠指令是否可摺叠合并,若可摺叠合并,则输出合并后之该暂时指令的来源装置种类、来源资料长度、存放装置种类及存放资料长度,若不可合并,则保持前面指令之来源装置种类、来源资料长度、存放装置种类以及存放资料长度。10.如申请专利范围第9项所述之指令摺叠方法,其中该b.2.1进一步包括以下步骤:b.2.1.1使用一选择电路,来依据该POC分类合并规则由该前面指令之POC类与后面的该待摺叠指令之POC类别中选出该暂时指令之POC类别;b.2.1.2使用另一多工器,来依据该选择电路的输出,来产生该该暂时指令之POC类别;以及b.2.1.3使用一判断电路,来依据该前面指令之POC类与后面的该待摺叠指令之POC类别及该双指令合并单位传来之该继续信号来产生该摺叠数量信号及另一继续信号。11.一种可摺叠指令堆叠机器之指令摺叠方法,包括以下步骤:a.使用一指令快取记忆体,来撷取并储存一预定数目个待执行指令;b.使用一指令环形缓冲器,再撷取并储存该待执行指令中一预定数目个待摺叠指令;c.使用一指令码检查器来找出该待摺叠指令所对应的指令码及运算子之位置及长度资料;d.使用一程式控制器,根据该指令码之长度资料来控制该指令快取记忆体所存该待执行指令与该指令环形缓冲器内所存该待摺叠指令之读出与位移;e.使用一指令摺叠装置,来接收该待摺叠指令之该指令码及该运算子,并比较该前面指令之存放装置种类与后面的待摺叠指令之来源装置种类是否有相同的形式,及比较前面指令之存放资料长度与后面的待摺叠指令之来源资料长度是否相同,且依据一POC分类合并规则与一资料位置储存规则,检查一前面指令之指令码与后面的该待摺叠指令,以判断该前面指令与后面的待摺叠指令可否摺叠合并,以产生一处理后指令之一来源位址、一存放位址及一首要指令码;f.使用一解码器,来将该首要指令码依其所对应的指令码格式解码后输出一控制信号;g.使用一执行指令储存器,来储存该处理后指令之该来源位址,该存放位址,以及该控制信号;以及h.使用一指令执行单元,来接收该控制信号、该来源位址以及该存放位址,并根据该控制信号、该来源位址及该存放位址,经由指定的一局部变数暂存器、一运算堆叠器或一常数暂存器来存取资料,以执行经摺叠合并后或不可摺叠合并的该待执行指令。图式简单说明:图一为习知堆叠机器之运算结构示意图。图二为图一堆叠机器的运算流程图。图三为本发明可摺叠指令之堆叠机器之运算结构示意图。图四显示可接受N个待摺叠指令的状态机。图五显示如何将四个待摺叠指令转换成表一所示之符号。图六为图五所示之四个待摺叠指令利用表一所示之POC分类合并规则来两两加以摺叠的摺叠过程。图七A至图七C显示图五每一摺叠步骤的摺叠形态图八为图三可摺垒指令之堆叠机器之运算流程图。图九为图三所示之指令摺叠器的方块图。图十为图九第一双指令合并单位的方块图。图十一为图十POC运算器之逻辑电路图。图十二为图九首要指令码选择器之逻辑电路图。
地址 新竹县竹东镇中兴路四段一九五号