程序计数器的地址计算方法及装置的制作方法

文档序号:6410312阅读:302来源:国知局
专利名称:程序计数器的地址计算方法及装置的制作方法
技术领域
本发明涉及一种地址的计算方法及装置,尤指一种程序计数器的地址计算方法及装置。
请参阅

图1,传统的CISC结构中,因为不会面临采用管线结构(pipeline)时,需于特定时刻更新程序计数器地址的问题,所以,当程序计数器与8-bit相对地址相加时,如有溢位(carry)产生,只需再多加一时钟(clock),以完成相加的运算,即可于第三时钟周期结束前更新程序计数器的地址,但其较为费时的结构,并非现今使用者乐于采用的方式。
因为目前均采用管线并行处理的方式,且一般的程序计数器(Program Counter)均为上数计数器,故程序计数器的内含值必须在固定的系统时钟(system clock)中被算出,因此,当程序计数器的低位组地址(PCL)与一8-bit相对地址相加时,若两者的相加结果大于255,则必然会产生溢位(carry),且在采用管线并行处理的方式下,又必须于下一时钟立即更新程序计数器的地址,因此,上述问题急待解决。
而已知作法之一则限定程序计数器的低位组地址(k1)与一8-bit相对地址(A)的相加结果小于256,以防止溢位产生,此作法并未考虑溢位发生时所遭遇的问题,因而造成使用者的困扰,其电路方块示意图,请参阅图2。
另请参阅图3,已知作法之二,虽可解决溢位产生时所遭遇的问题,但其必须多耗费一系统时钟,以分别完成程序计数器的低位组与程序计数器的高位组的运算,即程序计数器的地址需于第三时钟周期结束前,始被更新,其作法亦较为费时。
而已知作法之三,例如在High-End的32-bit的RISC结构中,为了在特定个数时钟中计算出地址,因此采用额外的算术逻辑单元(ALU)专作地址计算,一般称为地址产生单元(Address Generation Unit,AGU),此作法则需耗费较大硬件设备。
本发明的主要目的,即在于提供一种程序计数器的地址计算方法,其可解决溢位或是不同一页的问题,并可于一固定系统时钟中计算出地址。
本发明的次要目的,即在于提供一种程序计数器的地址计算装置,其可解决溢位或是不同一页的问题,并可于一固定系统时钟中计算出地址。
根据本发明的主要目的,其构想在于提供一种程序计数器的地址计算方法,其步骤可包含a)于一第一时钟周期时,根据该程序计数器内含的一第一地址以提取一第一指令至一算术逻辑单元中,并将该第一地址的高位组地址存储至一存储控制装置中;以及b)于一第二时钟周期时,根据该存储控制装置所产生的一触发信号,以将该程序计数器的高位组所存储的该第一地址的高位组地址加一运算值,且该算术逻辑单元执行该第一指令,以产生一标志信号以及一存储于该程序计数器的低位组中的运算地址;其中,该运算地址是用来作为一第二地址的低位组地址使用,且于该第二时钟周期结束前根据该标志信号,将已存储于该存储控制装置中的该第一地址的高位组地址予以回存至该程序计数器的高位组内,或保留该经加一运算值后的该第一地址的高位组地址于该程序计数器的高位组中,以作为该第二地址的高位组地址使用;如此即可按照存储于该程序计数器中的该第二地址,提取一第二指令。
依据上述构想,其中该第一地址及该第二地址均为一16-bit地址。
依据上述构想,其中该存储控制装置是可包含一控制线路与一数据缓冲装置。
依据上述构想,其中于该步骤(a)中,该存储动作可由该数据缓冲装置完成。
依据上述构想,其中该数据缓冲装置可以是一缓冲器(Buffer)。
依据上述构想,其中于该步骤(b)中,产生该触发信号的动作可由该控制线路完成。
依据上述构想,其中于该步骤(b)中,该运算值可为1。
依据上述构想,其中于该步骤(b)中,该算术逻辑单元是将该第一地址的低位组地址与一相对地址,并进行一逻辑运算,且该相对地址可为一8-bit地址。
依据上述构想,其中于该步骤(b)中,该标志信号可位于一低电平状态,而该第一地址的高位组地址将回存至该程序计数器的高位组中,且该第二地址的高位组地址即为该第一地址的高位组地址。
依据上述构想,其中于该步骤(b)中,该标志信号可位于一高电平状态,而该经加一运算值之后的该第一地址的高位组地址将保留在该程序计数器的高位组中,且该第二地址的高位组地址是该经加一运算值后的该第一地址的高位组地址。
根据本发明的次要目的,其构想是提供一种程序计数器的地址计算装置,它包含一程序计数器,是用来在一第一时钟周期时存储一第一地址和提供该第一地址的高位组地址,且在一第二时钟周期时存储一经加一运算值后的该第一地址的高位组地址以及一运算地址;一算术逻辑单元,电连接于该程序计数器,该算术逻辑单元在该第一时钟周期时根据该程序计数器所内含的该第一地址,以提取一第一指令至该算术逻辑单元中,并于该第二时钟周期时执行该第一指令,以产生该运算地址及一标志信号;其中,该运算地址是用来作为一第二地址的低位组地址使用,且该运算地址予以存储至该程序计数器的低位组中;以及一存储控制装置,电连接于该程序计数器以及该算术逻辑单元,该存储控制装置是用来在该第一时钟周期结束前输入并存储该第一地址的高位组地址,且于该第二时钟周期时产生一触发信号,以将该程序计数器的高位组中所存储的该第一地址的高位组地址加一运算值;其中,于该第二时钟周期结束前,该存储控制装置可根据该标志信号,将已存储于该存储装置中的该第一地址的高位组地址回存至该程序计数器的高位组中,或保留该经加一运算值后的该第一地址的高位组地址于该程序计数器的高位组中,以作为一第二地址的高位组地址使用;按照存储于该程序计数器中的该第二地址,提取一第二指令。
依据上述构想,其中该程序计数器为一上数计数器(up-counter)。
依据上述构想,其中该程序计数器为一16-bit计数器。
依据上述构想,其中该算术逻辑单元将该第一地址的低位组地址与一相对地址,并进行一逻辑运算,且该相对地址可为一8-bit地址。
依据上述构想,其中该运算值可为1。
依据上述构想,其中该标志信号可位于一低电平状态,而该第一地址的高位组地址将回存至该程序计数器的高位组中,且该第二地址的高位组地址为该第一地址的高位组地址。
依据上述构想,其中该标志信号可位于一高电平状态,而该经加一运算值后的该第一地址的高位组地址是保留在该程序计数器的高位组中,且该第二地址的高位组地址是该经加一运算值后的该第一地址的高位组地址。
依据上述构想,其中该存储控制装置是包含一控制线路和一数据缓冲装置。
依据上述构想,其中该数据缓冲装置可为一缓冲器(buffer)。
依据上述构想,其中产生该触发信号的动作可由该控制线路完成。
本发明按照下列示意图及详细说明,得以一更深入的了解。
图1为已知CISC结构中,计算地址时的时钟周期图。
图2为已知管线并行处理方式下,不考虑溢位产生的程序计数器电路方块示意图。
图3为已知管线并行处理方式下,计算地址时的时钟周期图。
图4为本发明的程序计数器的地址计算装置电路方块示意图。
图5为本发明的程序计数器计算地址时的时钟周期图。
为使贵审查委员更进一步了解本发明,请参阅图4,它是本发明的程序计数器的地址计算装置电路方块示意图。图中包含程序计数器1、程序计数器的低位组11、程序计数器的高位组12、算术逻辑单元2、存储单元3、存储控制装置4、控制线路41、数据缓冲装置42、相对地址(A)、第一地址的低位组地址(A1)、运算地址(A2)、标志信号A3、触发信号A4、第一控制信号A5、第二控制信号A6、第一地址的高位组地址(S1)、经加1后的该第一地址的高位组地址(S2)、第二地址的低位组地址(A7)、第二地址的高位组地址(A8)、第二地址(A9)。并请配合参阅图5,它是本发明的程序计数器计算地址时的时钟周期图。
本发明的程序计数器于(一)第一时钟周期T1中,根据该程序计数器1内含的一第一地址,以提取一第一指令(ADDM A,PCL)至一算术逻辑单元2中,并由该程序计数器的低位组11提供该第一地址的低位组地址(A1),且将该程序计数器的高位组12内含的该第一地址的高位组地址(S1),存储至存储控制装置4的数据缓冲装置42中;(二)第二时钟周期T2中,根据该存储控制装置4的控制线路41所产生的一触发信号A4,将该程序计数器的高位组12所存储的该第一地址的高位组地址(S1)加1,以产生该经加1后的该第一地址的高位组地址(S2),且该算术逻辑单元2执行该第一指令,即将该程序计数器的低位组11提供的该第一地址的低位组地址(A1)与一相对地址(A)相加,以产生一运算地址(A2)及一标志信号A3,且该运算地址(A2)存储于该程序计数器的低元组11内,以作为一第二地址的低位组地址(A7)使用;该存储控制装置4在该第二时时周期T2结束前,根据该标志信号A3,以产生一第一控制信号A5与一第二控制信号A6,将存储于该数据缓冲装置42中的该第一地址的高位组地址(S1)回存至该程序计数器的高位组12中,或保留该经加1后的该第一地址的高位组地址(S2)于该程序计数器的高位组12中,以产生该第二地址的高位组地址(A8),根据该第二地址的低位组地址(A7)与该第二地址的高位组地址(A8)的组合,得一第二地址(A9),即可在第二时钟周期T2结束前,更新程序计数器1的内含值,以提取存储器3的第二地址(A9)所指的一第二指令。
本发明提供的程序计数器的地址计算方法及装置,可于该第二时钟周期T2结束前,同时拥有原已存储于该数据缓冲装置42中的该第一地址的高位组地址(S1),以及存储于该程序计数器的高位组12中的该经加1后的该第一地址的高位组地址(S2),因此,当8-bit相对地址(A)与该程序计数器的低位组11中内含的该第一地址的低位组地址(A1)相加时,若其结果不大于255,则当然不会有溢位产生,此时标志信号A3将位于一低电平状态,因此,原已存储于该数据缓冲装置42中的该第一地址的高位组地址(S1)将回存至该程序计数器的高位组12中,作为该第二地址的高位组地址(A8)使用;当8-bit相对地址(A)与该程序计数器的低位组11中内含的该第一地址的低位组地址(A1)相加时,若其结果大于255,则会有溢位产生,此时标志信号A3将位于一高电平状态,程序计数器的高位组12将保留该经加1后的该第一地址的高位组地址(S2),作为该第二地址的高位组地址(A8)使用。本发明不需限定程序计数器的低位组地址与一相对地址的相加结果,而可正确无误地于所需时刻更新程序计数器的内含值,并根据存储于该程序计数器中的该第二地址,得以提取一第二指令。
综上所述,本发明所提供的程序计数器的地址计算方法及装置,可解决程序计数器与一8-bit相对地址相加时,所产生的溢位问题,或解决不同一页的问题,简而言之,即可在所需的时钟周期中,以一8-bit程序计数器完成一16-bit程序计数器所做的工作,只需利用原有的硬件结构,再加上简单的控制线路与缓冲器,即可在所需更新程序计数器内含值的时钟周期中,拥有一旧值与一新值,而于该时钟周期结束前,根据该标志信号,由控制线路决定输出新值或旧值,以更新程序计数器的内含值。
本领域技术人员对本发明的任何修改和变动,均不超出本发明权利要求的保护范围。
权利要求
1.一种程序计数器的地址计算方法,其步骤可包含a)于一第一时钟周期时,根据该程序计数器内含的一第一地址以提取一第一指令至一算术逻辑单元中,并将该第一地址的高位组地址存储至一存储控制装置中;以及b)于一第二时钟周期时,根据该存储控制装置所产生的一触发信号,以将该程序计数器的高位组所存储的该第一地址的高位组地址加一运算值,且该算术逻辑单元执行该第一指令,以产生一标志信号以及一存储于该程序计数器的低位组中的运算地址;其中,该运算地址是用来作为一第二地址的低位组地址使用,且于该第二时钟周期结束前根据该标志信号,将已存储于该存储控制装置中的该第一地址的高位组地址予以回存至该程序计数器的高位组内,或保留该经加一运算值后的该第一地址的高位组地址于该程序计数器的高位组中,以作为该第二地址的高位组地址使用;如此即可根据存储于该程序计数器中的该第二地址,以提取一第二指令。
2.如权利要求1所述的一种程序计数器的地址计算方法,其中该第一地址及该第二地址均为一16-bit地址。
3.如权利要求1所述的一种程序计数器的地址计算方法,其中该存储控制装置可包含一控制线路与一数据缓冲装置。
4.如权利要求3所述的一种程序计数器的地址计算方法,其中于该步骤(a)中,该存储动作可由该数据缓冲装置完成。
5.如权利要求4所述的一种程序计数器的地址计算方法,其中该数据缓冲装置可为一缓冲器(Buffer)。
6.如权利要求3所述的一种程序计数器的地址计算方法,其中于该步骤(b)中,产生该触发信号的动作可由该控制线路完成。
7.如权利要求1所述的一种程序计数器的地址计算方法,其中于该步骤(b)中,该运算值可为1。
8.如权利要求1所述的一种程序计数器的地址计算方法,其中于该步骤(b)中,该算术逻辑单元将该第一地址的低位组地址与一相对地址,并进行一逻辑运算。
9.如权利要求8所述的一种程序计数器的地址计算方法,其中该相对地址可为一8-bit地址。
10.如权利要求1所述的一种程序计数器的地址计算方法,其中于该步骤(b)中,该标志信号可位于一低电平状态。
11.如权利要求10所述的一种程序计数器的地址计算方法,其中于该步骤(b)中,该第一地址的高位组地址将回存至该程序计数器的高位组中。
12.如权利要求11所述的一种程序计数器的地址计算方法,其中于该步骤(b)中,该第二地址的高位组地址即为该第一地址的高位组地址。
13.如权利要求1所述的一种程序计数器的地址计算方法,其中于该步骤(b)中,该标志信号可位于一高电平状态。
14.如权利要求13所述的一种程序计数器的地址计算方法,其中于该步骤(b)中,该经加一运算值后的该第一地址的高位组地址将保留于该程序计数器的高位组中。
15.如权利要求14所述的一种程序计数器的地址计算方法,其中于该步骤(b)中,该第二地址的高位组地址为该经加一运算值的该第一地址的高位组地址。
16.一种程序计数器的地址计算装置,其包含一程序计数器,它是用来在一第一时钟周期时存储一第一地址并输出该第一地址的高位组地址,且于一第二时钟周期时存储一经加一运算值后的该第一地址的高位组地址以及一运算地址;一算术逻辑单元,电连接于该程序计数器,该算术逻辑单元在该第一时钟周期时根据该程序计数器所内含的该第一地址,以提取一第一指令至该算术逻辑单元中,并于该第二时钟周期时执行该第一指令,以产生该运算地址及一标志信号;其中,该运算地址用来作为一第二地址的低位组地址使用,且该运算地址予以存储至该程序计数器的低位组中;以及一存储控制装置,电连接于该程序计数器以及该算术逻辑单元,该存储控制装置用以在该第一时钟周期结束前输入并存储该第一地址的高位组地址,且于该第二时钟周期时产生一触发信号,以将该程序计数器的高位组中所存储的该第一地址的高位组地址加一运算值;其中,在该第二时钟周期结束前,该存储控制装置可根据该标志信号,将已存储于该存储控制装置中的该第一地址的高位组地址回存至该程序计数器的高位组中,或保留该经加一运算值后该第一地址的高位组地址在该程序计数器的高位组中,以作为一第二地址的高位组地址使用;根据存储于该程序计数器中的该第二地址,以提取一第二指令。
17.如权利要求16所述的一种程序计数器的地址计算装置,其中该程序计数器可为一上数计数器(up-counter)。
18.如权利要求16所述的一种程序计数器的地址计算装置,其中该程序计数器可为一16-bit计数器。
19.如权利要求16所述的一种程序计数器的地址计算装置,其中该算术逻辑单元将该第一地址的低位组地址与一相对地址,进行一逻辑运算。
20.如权利要求19所述的一种程序计数器的地址计算装置,其中该相对地址可为一8-bit地址。
21.如权利要求16所述的一种程序计数器的地址计算方法,其中该运算值可为1。
22.如权利要求16所述的一种程序计数器的地址计算装置,其中该标志信号可位于一低电平状态。
23.如权利要求22所述的一种程序计数器的地址计算装置,其中该第一地址的高位组地址将回存至该程序计数器的高位组中。
24.如权利要求23所述的一种程序计数器的地址计算装置,其中该第二地址的高位组地址即为该第一地址的高位组地址。
25.如权利要求16所述的一种程序计数器的地址计算装置,其中该标志信号可位于一高电平状态。
26.如权利要求25所述的一种程序计数器的地址计算装置,其中该经加一运算值后的该第一地址的高位组地址将保留于该程序计数器的高位组中。
27.如权利要求26所述的一种程序计数器的地址计算装置,其中该第二地址的高位组地址是该经加一运算值后的该第一地址的高位组地址。
28.如权利要求16所述的一种程序计数器的地址计算装置,其中该存储控制装置包含一控制线路与一数据缓冲装置。
29.如权利要求28所述的一种程序计数器的地址计算装置,其中该数据缓冲装置可为一缓冲器(buffer)。
30.如权利要求28所述的一种程序计数器的地址计算装置,其中产生该触发信号的动作可由该控制线路完成。
全文摘要
本发明涉及程序计数器的地址计算方法及装置,它由程序计数器,算术逻辑单元及存储控制装置进行地址计算,其步骤为:(a)在第一时钟周期,根据计数器内含的第一地址提取第一指令;将第一地址的高位组地址存储至存储装置中;(b)在第二时钟周期,计数器的高位组地址加一运算值;执行第一指令,产生标志信号和第二地址的低位组地址;根据标志信号,或是第一地址的高位组地址,或是经运算后的第一地址的高位组地址,作为第二地址的高位组地址;按照第二地址提取第二指令。
文档编号G06F9/32GK1177139SQ9610687
公开日1998年3月25日 申请日期1996年6月24日 优先权日1996年6月24日
发明者陈宝龙 申请人:合泰半导体股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1