发明名称 一种同步处理方法及其装置
摘要 本发明涉及计算机同步技术领域,特别是一种同步处理方法及其装置。该方法是在同一台CPU中在同一时刻能够并行地执行多道程序的计算机体系结构的特点并采用程序缓时执行技术,方法包括:同步处理方法、L结构CPU的程序驱动器驱动方法、增设同步处理装置后的L结构CPU的程序驱动方法。装置包括:N个同步标志、输入缓存寄存器、输出缓存寄存器、输入/出缓存寄存器的忙/闲标志、操作/控制部件。这种同步处理方法及其装置可用于协调同步多道具有数据相关的程序的执行;特别地,是为L结构CPU提供一种开销小、效率高的方法及装置以实现各类同步功能。
申请公布号 CN100533392C 申请公布日期 2009.08.26
申请号 CN200510058829.8 申请日期 2005.03.30
申请人 李晓波 发明人 李晓波
分类号 G06F9/52(2006.01)I 主分类号 G06F9/52(2006.01)I
代理机构 代理人
主权项 1. 一种同步处理方法,其特征在于,是在同一台CPU中在同一时刻能够并行地执行多道程序的计算机体系结构的方法并采用程序缓时执行技术,该方法包括:L结构CPU的程序驱动器驱动方法和增设同步处理装置后的L结构CPU的程序驱动器驱动方法,程序驱动器是程序执行的相关信息,其同步处理主要工作步骤如下:步骤1. 1:循环检测同步处理装置的输入缓存寄存器的忙闲标志,直到其为忙时转步骤1.2;步骤1. 2:从同步处理装置的输入缓存寄存器中取出待处理的程序驱动器,并根据该程序驱动器所携带的同步指令类型分别进行处理:如果是设置同步标志指令,转步骤1.3;如果是测试与等待同步标志指令,转步骤1.4;步骤1. 3:对于设置同步标志指令,按该指令所定义的操作设置相应的同步标志,并将当前程序驱动器的执行状态设置为顺序执行;转步骤1.5;步骤1. 4:对于测试与等待同步标志指令,按该指令所定义的操作测试相应的同步标志,并根据测试结果设定当前程序驱动器的执行状态;如果被测试的同步标志满足测试条件,则置当前程序驱动器的执行状态为顺序执行,否则置当前程序驱动器的执行状态为等待执行;步骤1. 5:根据当前程序驱动器的执行状态,置当前程序驱动器的下一目的装置:若当前程序驱动器的执行状态为顺序执行,则置当前程序驱动器的下一目的装置为程序控制装置,否则置当前程序驱动器的下一目的装置为程序缓时执行装置;步骤1. 6:将已完成同步处理的当前程序驱动器发送到同步处理装置的输出缓存寄存器,并置其状态为忙;步骤1. 7:循环检测同步处理装置的输出缓存寄存器的忙闲标志,直到其为闲;置同步处理装置的输入缓存寄存器的忙闲标志为闲,转步骤1.1;L结构CPU的程序驱动器驱动方法,其步骤如下:步骤2. 1:L结构CPU的程序控制装置按规定用程序驱动器中的△PC更新程序驱动器中的PC生成下一条指令的地址并完成相关的设置;如果检测到该道程序无需中断,则将该已更新的程序驱动器发送给L结构CPU的取指令装置,即转步骤2.2;如果检测到该道程序需要进行中断处理时,则将该已更新的程序驱动器发送给L结构CPU的程序缓时执行装置,即转步骤2.5;步骤2. 2:取指令装置按程序驱动器中的PC地址到程序存储器中取到相应的指令并将其保存到当前程序驱动器的相应单元中;之后,将携带有当前指令的程序驱动器发送给L结构CPU的指令译码装置,即转步骤2.3;步骤2. 3:指令译码装置对当前程序驱动器携带的指令进行译码并将其保存到当前程序驱动器的相应单元中;随后将携带有已译码的当前指令的程序驱动器发送给L结构CPU的指令执行装置,即转步骤2.4;步骤2. 4:指令执行装置按指令所规定的操作执行该指令,并将操作执行该指令所形成的执行状态保存到当前程序驱动器的相应单元中;最后将该程序驱动器发送给程序控制装置,以执行该道程序的下一条指令,即转步骤2.1;步骤2. 5:程序缓时执行装置接收到需要进行中断处理的程序驱动器后,将其打入程序缓时执行装置的程序缓时执行队列的第0栈;此后,该道程序的程序驱动器就被动态地锁在程序缓时执行装置中进行动态等待;每隔n拍,如果下栈空闲,就下挪一栈;直到被中断的程序驱动器已经逐栈移动到程序缓时执行队列的前部,即程序缓时执行队列的第N-1栈;此时,被中断的程序驱动器已经经过了一段时间的中断等待,应该返回到正常的程序驱动流程中了,此时,程序缓时执行装置将存放在程序缓时执行队列第N-1栈的被中断的程序驱动器发送给取指令装置使该道程序转入正常的执行流程,即转步骤2.2;增设同步处理装置后的L结构CPU的程序驱动器驱动方法,其步骤如下:步骤3. 1:程序控制装置按规定用程序驱动器中的△PC更新程序驱动器中的PC生成下一条指令的地址并完成相关的设置;如果检测到该道程序无需中断,则将该已更新的程序驱动器发送给L结构CPU的取指令装置,即转步骤3.2;如果检测到该道程序需要进行中断处理时,则将该已更新的程序驱动器发送给L结构CPU的程序缓时执行装置,转步骤3.5;步骤3. 2:取指令装置按程序驱动器中的地址到程序存储器中取到相应的指令并将其保存到当前程序驱动器的相应单元中;之后,将携带有当前指令的程序驱动器发送给指令译码装置,转步骤3.3;步骤3. 3:指令译码装置对当前程序驱动器携带的指令进行译码并将其保存到当前程序驱动器的相应单元中;如果当前程序驱动器携带的指令不是一条同步指令,则将该程序驱动器发送给指令执行装置,转步骤3.4;如果当前程序驱动器携带的指令是一条同步指令,则该程序驱动器将由指令译码装置发送到同步处理装置,并将相应的忙闲标志置成为忙,转步骤3.6;步骤3. 4:指令执行装置按指令所规定的操作执行该指令,并将操作执行该指令所形成的执行状态保存到当前程序驱动器的相应单元中;最后将该程序驱动器发送给程序控制装置,以执行该道程序的下一条指令,即转步骤3.1;步骤3. 5:程序缓时执行装置接收到需要进行中断等待的程序驱动器后,将其打入程序缓时执行装置的程序缓时执行队列的第0栈;此后,该程序驱动器就被动态地锁在程序缓时执行装置中进行动态等待;每隔n拍,如果下栈空闲,就下挪一栈;直到被中断的程序驱动器已经逐栈移动到程序缓时执行队列的前部,即程序缓时执行队列的第N-1栈;此时,被中断的程序驱动器已经经过了一段时间的中断等待,能够返回到正常的程序驱动流程中了;此时,程序缓时执行装置根据当前程序驱动器的来源将当前存放在程序缓时执行队列第N-1栈中被中断的程序驱动器或是发送给取指令装置使该道程序转入正常的执行流程,即转步骤3.2,或是发送给同步处理装置再一次执行同步测试指令,即转步骤3.6;步骤3. 6:当同步处理装置检测到其输入缓存寄存器的忙闲标志为忙时,从该输入缓存寄存器中取出待处理的程序驱动器,并执行该程序驱动器中所携带的同步指令:如是设置同步标志指令,则设置相应的同步标志,置当前程序驱动器的下一目的装置为程序控制装置;如是测试与等待同步标志指令,则测试相应的同步标志,并根据测试结果设定当前程序驱动器的下一目的装置:程序控制装置或是程序缓时执行装置;如果当前程序驱动器的下一目的装置被设置成为程序控制装置,则将该程序驱动器发送给指令执行装置,转步骤3.1;如果当前程序驱动器的下一目的装置被设置成为程序缓时执行装置,说明该程序驱动器需要进行中断等待,故将该程序驱动器发送给程序缓时执行装置,转步骤3.5。
地址 410000湖南省长沙市韶山路154梅岭村32栋102