CN105138308B - 一种更新寄存器的方法及装置 - Google Patents
一种更新寄存器的方法及装置 Download PDFInfo
- Publication number
- CN105138308B CN105138308B CN201510542101.6A CN201510542101A CN105138308B CN 105138308 B CN105138308 B CN 105138308B CN 201510542101 A CN201510542101 A CN 201510542101A CN 105138308 B CN105138308 B CN 105138308B
- Authority
- CN
- China
- Prior art keywords
- register
- data
- region
- thread
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Optical Communication System (AREA)
Abstract
本发明公开了一种更新寄存器的方法及装置。该方法中,更新寄存器的第一线程包括:读取寄存器的数据并存储到第一内存中,更新第一内存中的数据,将更新后的数据写入寄存器;在第一线程执行期间,若主机请求写寄存器,则中断第一线程,执行第二线程,第二线程对应的操作包括:根据写寄存器的请求在第二内存中写入数据,恢复执行第一线程,在第一线程执行完成后,再次执行第一线程;再次执行的第一线程包括:读取寄存器的数据并存储到第三内存中,根据第二内存中的数据更新第三内存中的数据,将第三内存中的数据写入寄存器。本发明可以避免主机写入寄存器的信息被覆盖,进而导致通信失效的情况发生,确保了主机写入信息的正确性与可靠性。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种更新寄存器的方法及装置。
背景技术
光模块的功能是将光信号与电信号互相转换,并通过IIC(Inter-IntegratedCircuit,集成电路总线)与主机进行信息交互。根据INF-8074标准的要求,光模块的IIC总线协议是使用CMOS(Complementary Metal Oxide Semiconductor,互补金属氧化物半导体)EEPROM(Electrically Erasable Programmable Read-Only Memory,带电可擦写可编程只读存储器)器件AT24C02的两线串行协议,支持读写操作。
光模块中有些特殊的寄存器,这种特殊的寄存器中存储的比特序列中有用来实时反映光模块的状态比特位,有用于指示关断光模块发射部分的比特位,该比特位的值由主机写入。符合SFF-8472标准的光模块都有这种特别的寄存器。例如,寄存器地址为110的寄存器就是这种特殊的寄存器,该寄存器中存储的比特序列中的Bit7是用来实时反映TXDisable引脚的状态,由光模块输出,为了让主机能够随时读取到光模块的当前状态,光模块需要不断的更新110寄存器的第7比特位。而该寄存器中存储的比特序列中的第6比特位是用来关断光模块的发射部分,由主机输入。
由于寄存器的读写入口只有一个,在对这种特殊寄存器进行更新时,如果同时主机对该寄存器进行写操作,如图1所示,这两种操作就会产生冲突,主机写入到光模块的信息被覆盖,导致通信失效。因此,如何安全更新寄存器保证其可靠性,是目前亟待解决的问题。
发明内容
本发明实施例提供一种更新寄存器的方法及装置,用以提高寄存器更新操作的可靠性。
本发明的一个实施例提供的一种更新寄存器的方法,包括:
执行更新寄存器的第一线程,所述第一线程对应的操作包括:读取寄存器的数据,将读取到的数据存储到第一内存区域,更新所述第一内存区域中的数据,将更新后的数据写入所述寄存器;
在所述第一线程执行期间,若接收到主机发送的请求写寄存器的指令,则根据所述请求写寄存器的指令中断执行所述第一线程,执行第二线程,所述第二线程对应的操作包括:根据所述请求写寄存器的指令在第二内存区域写入数据,恢复执行所述第一线程,在所述第一线程执行完成后,再次执行第一线程;所述请求写寄存器的指令的优先级高于所述第一线程的优先级;
所述再次执行的第一线程对应的操作包括:读取寄存器的数据,将读取到的数据存储到第三内存区域,根据所述第二内存区域中的数据更新所述第三内存区域中的数据,将所述第三内存区域更新后的数据写入所述寄存器。
所述更新所述第一内存区域的数据,包括:更新所述第一内存区域中存储的寄存器数据中的第一比特位数据;在所述第二内存区域写入的数据为寄存器数据中的第二比特位数据。
所述根据所述第二内存区域中的数据更新所述第三内存区域的数据,包括:根据所述第二内存区域中的所述第二比特位数据,更新所述第三内存区域中的寄存器数据中的第二比特位数据,保持所述第三内存区域中的寄存器数据中的其余比特位数据不变。
所述第一比特位的数据为所述光模块的状态数据或控制数据,所述第二比特位的数据为所述光模块的状态和控制数据。
所述执行更新寄存器的第一线程,还包括:根据设定周期执行所述更新寄存器的第一线程。
本发明的一个实施例提供的一种寄存器的装置,包括:控制模块、寄存器处理模块和中断处理模块;
所述控制模块:用于指示所述寄存器处理模块执行更新寄存器的第一线程,所述第一线程对应的操作包括:读取寄存器的数据,将读取到的数据存储到第一内存区域,更新所述第一内存区域中的数据,将更新后的数据写入所述寄存器;
在所述第一线程执行期间,若接收到请求写寄存器的指令,则根据所述请求写寄存器的指令指示所述寄存器处理模块中断执行所述第一线程,执行第二线程,指示所述中断处理模块根据所述请求写寄存器的指令在第二内存区域写入数据,指示所述寄存器处理模块恢复执行所述第一线程,在所述第一线程执行完成后,指示寄存器处理模块再次执行所述第一线程;所述请求写寄存器的指令的优先级高于所述第一线程的优先级;以及
所述再次执行的第一线程对应的操作包括:读取寄存器的数据,将读取到的数据存储到第三内存区域,根据所述第二内存区域中的数据更新所述第三内存区域中的数据,将所述第三内存区域更新后的数据写入所述寄存器。
所述寄存器处理模块,具体用于:更新所述第一内存区域中存储的寄存器数据中的第一比特位数据;在所述第二内存区域写入的数据为寄存器数据中的第二比特位数据。
所述寄存器处理模块,具体用于:根据所述第二内存区域中的所述第二比特位数据,更新所述第三内存区域中的寄存器数据中的第二比特位数据,保持所述第三内存区域中的寄存器数据中的其余比特位数据不变。
所述第一比特位的数据为所述光模块的状态数据或控制数据,所述第二比特位的数据为所述光模块的状态和控制数据。
所述寄存器处理模块,还用于:根据设定周期执行所述更新寄存器的第一线程。
本发明的上述实施例中,在更新寄存器时,执行更新寄存器的第一线程,读取寄存器的数据,将读取到的数据存储到第一内存区域,更新所述第一内存区域中的数据,再将更新后的数据写入所述寄存器。若在更新寄存器的过程中,接收到主机发送的请求写寄存器的指令,则根据所述请求写寄存器的指令中断执行所述第一线程,执行第二线程,根据所述请求写寄存器的指令在第二内存区域写入数据,恢复执行所述第一线程,在所述第一线程执行完成后,再次执行第一线程,读取寄存器的数据,将读取到的数据存储到第三内存区域,根据所述第二内存区域中的数据更新所述第三内存区域中的数据,将所述第三内存区域更新后的数据写入所述寄存器。根据上述实施例,主机请求写入的数据不是直接写入寄存器,而是先写入第二内存区域,待寄存器更新完成后再将第二内存区域中的数据写入寄存器,避免了在执行第一线程的过程中,基于接收到的主机请求写寄存器的指令触发写寄存器操作所导致的主机写入寄存器的信息在寄存器更新过程中被覆盖进而导致通信失效的情况发生,确保了主机写入信息的正确性与可靠性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中更新光模块寄存器的流程示意图;
图2为本发明实施例中提供的更新寄存器的流程示意图;
图3为本发明实施例中提供的更新寄存器的装置示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
参见图2,为本发明实施例提供的更新寄存器的流程示意图,如图所示,具体步骤如下:
执行更新寄存器的第一线程,所述第一线程对应的操作包括:步骤201:读取寄存器的数据,将读取到的数据存储到第一内存区域,步骤202:更新所述第一内存区域中的数据,步骤203:将更新后的数据写入所述寄存器。
在所述第一线程执行期间,若接收到主机发送的请求写寄存器的指令,则执行步骤204:根据所述请求写寄存器的指令中断执行所述第一线程,执行第二线程,根据所述请求写寄存器的指令在第二内存区域写入数据,恢复执行所述第一线程,在所述第一线程执行完成后,再次执行第一线程;所述主机发送的请求写寄存器的指令的优先级高于所述第一线程的优先级;
所述再次执行的第一线程对应的操作包括:步骤205:读取寄存器的数据,将读取到的数据存储到第三内存区域,步骤206:根据所述第二内存区域中的数据更新所述第三内存区域中的数据,步骤207将所述第三内存区域更新后的数据写入所述寄存器。
若在第一线程执行期间,接收到请求写寄存器的指令,则中断第一线程,执行第二线程,即转入步骤204;待第二线程执行完毕,返回继续执行第一线程;待第一线程执行结束,再次执行第一线程,即转入步骤205至207。
若在第一线程非执行期间,接收到主机发送的请求写寄存器的指令,则执行第二线程,即步骤204;待第二线程执行完毕,再执行第一线程,即步骤205至207。
所述更新寄存器的第一线程的第一流程,是根据预先设定的周期执行。
上述步骤202中,更新所述第一内存区域中存储的寄存器数据中的第一比特位数据,所述第一比特位的数据为所述光模块的状态数据或控制数据。
上述步骤204中,在所述第二内存区域写入的数据为寄存器数据中的第二比特位数据,所述第二比特位的数据为所述光模块的状态和控制数据。
上述步骤206中,根据所述第二内存区域中的所述第二比特位数据,更新所述第三内存区域中的寄存器数据中的第二比特位数据,保持所述第三内存区域中的寄存器数据中的其余比特位数据不变。
本发明的上述实施例中,在更新寄存器时,读取寄存器的数据并存储到第一内存区域,更新所述第一内存区域中的数据,再将更新后的数据写入所述寄存器。若在更新寄存器的过程中,主机请求写寄存器,则先将主机写入的数据存储在第二内存区域中,待更新寄存器过程结束后,再读取寄存器中的数据存储到第三内存区域中,根据所述第二内存区域中的数据更新第三内存区域中的数据,将所述第三内存区域中更新后的数据写入所述寄存器。根据上述的方法,主机请求写入的数据不是直接写入寄存器,而是先写入第三内存区域,待寄存器更新完成后再将第三内存区域中的数据写入寄存器,避免了主机写入寄存器的信息在寄存器更新过程中被覆盖进而导致通信失效的情况发生。
在本发明实施例中,数据可分为三种:状态数据,即用于反映某种状态的数据;控制数据,即用于由控制某种功能的数据;以及状态和控制数据,既可作为状态输出的数据,也可作为控制输入的数据。
例如:光模块中地址为110寄存器的第7比特位上的数据属于状态数据,对应于前述的第一比特位数据,用来实时反映TX Disable引脚的状态,由光模块输出。再例如:光模块中地址为110寄存器的第6比特位上的数据,属于状态和控制数据,对应于前述的第二比特位数据,既可以用来反映光模块发射部分开/关的状态,也可以由主机输入用来控制光模块发射部分的开/关。在本发明的实施例中,仅有主机写入的数据是状态和控制数据,其他数据均为状态数据或控制数据。
上述实施例可应用于光模块中的寄存器的更新过程,为了更清楚地理解本发明的上述实施例,下面以光模块中地址为110的寄存器的更新过程为例,对本发明上述实施例的具体实现过程进行描述。
在光模块中,寄存器地址为110的寄存器,其第7比特位用来实时反映TX Disable引脚的状态,由光模块输出;该寄存器的第6比特位用来反映光模块发射部分开/关的状态,也可以由主机输入用来控制光模块发射部分的开/关。为了让主机能够随时读取到光模块的当前状态,光模块需要按照设定周期更新110寄存器的第7比特位。光模块更新110寄存器的第7比特位与主机输入寄存器第6比特位这两个操作共用一个读写入口,因此,在特定情况下采用图1所示的流程,这两个操作会存在冲突,主机输入110寄存器第6比特位的数据会被覆盖。
根据本发明提供的实施例的方法,在光模块110寄存器按照设定周期更新第7比特位时,执行更新寄存器第一线程,读取110寄存器上的数据存储到第一内存区域中,根据TXDisable引脚的状态更新第7比特位上的数据;若此时主机发送请求写110寄存器第6比特位的指令,中断更新寄存器的第一线程并执行第二线程,根据所述请求写寄存器的指令在第二内存区域写入第6比特位的数据,恢复执行所述第一线程;在第一线程执行完成后,再次执行第一线程,读取第7比特位上的数据存储到第三内存区域中,根据第二内存区域中的数据更新所述第三内存区域中第6比特位上的数据,保持第三内存区域中的其余比特位数据不变,将第三内存区域更新后的数据写入光模块110寄存器。
以具体数据为例,假设110寄存器上第7比特位至第0比特位上的数据依次为01010101。根据现有技术,在更新寄存器的周期到达时,读取110寄存器上的数据,将读取到的数据存储到第一内存区域中,此时第一内存区域中的数据为01010101。由于TX Disable引脚的状态发生变化,根据其变化更新第一内存区域中第7比特位的数据,即此时第一内存区域中的数据为11010101。若此时主机发送请求写110寄存器第6比特位的指令,要在110寄存器上第6比特位上写0,由于该指令具有较高优先级,因此更新寄存器的操作被中断,根据主机发送请求写寄存器的指令,将110寄存器中第6比特位上的数据写为0,此时110寄存器上的数据变为00010101。中断结束后,继续执行更新寄存器操作,将第一内存区域中的数据写入110寄存器,此时110寄存器上的数据变为11010101。由此可见,主机写入110寄存器第6比特位的数据被覆盖了。
仍然假设110寄存器上第7比特位至第0比特位上的数据依次为01010101。根据本发明实施例提供的更新寄存器的方法,在更新光模块110寄存器的周期到达时,需要更新该寄存器的第7比特位上的数据,此时执行更新寄存器第一线程,在步骤201中,读取110寄存器上的数据,将读取到的数据存储到第一内存区域,此时第一内存区域中的数据为01010101。由于TX Disable引脚的状态发生变化,在步骤202中,根据其变化更新第一内存区域中第7比特位的数据,即此时第一内存区域中的数据为11010101。若此时主机发送请求写110寄存器第6比特位的指令,要在110寄存器上第6比特位上写0,由于该指令具有较高优先级,因此,在步骤204中,中断更新寄存器的第一线程并执行第二线程,根据所述请求写寄存器的指令在第二内存区域写入第6比特位的数据。恢复执行更新寄存器的第一线程,在步骤203中,将所述第一内存区域中更新后的数据写入110寄存器中,此时110寄存器中是数据为11010101。待所述第一线程执行完成后,执行所述第二线程,在步骤205中,读取110寄存器的数据,将读取到的数据存储到第三内存区域,即此时第三内存区域中的数据为11010101。在步骤206中,根据所述第二内存区域中的数据更新所述第三内存区域中第6比特位上的数据,此时第三内存区域中的数据为10010101,在步骤207中,再将所述第三内存区域更新后的数据写入110寄存器,最终110寄存器上的数据为10010101,既实现了110寄存器第7比特位上数据的更新,又实现了主机对该寄存器第6比特位上数据的写入。
上述流程中,在步骤204中,可在第二内存区域写入01000000,在步骤206中,将第二内存区域中存储的01000000进行按位取反,然后与存储到第三内存区域中的11010101进行按位与的运算,得到第三内存区域中更新后的数据。
本发明实施例以光模块中地址为110的寄存器的更新过程为例,但不仅限于光模块中的地址为110的寄存器。本发明实施例提供的更新寄存器的方法可适用于符合以下条件的寄存器的更新过程:在同一寄存器中,既有用来实时反映光模块状态或其他状态需要自动更新的比特位,又有需要主机写入信息以用来实现功能控制的比特位,且由于更新寄存器特定比特位时可能造成主机写入信息丢失、被覆盖。
应用本发明提供的更新寄存器的方法,即不影响寄存器的正常更新,同时保证了主机有效地写入寄存器数据,避免了主机写入寄存器的信息在寄存器更新过程中被覆盖进而导致通信失效的情况发生,确保了主机写入信息的正确性与可靠性。
基于相同的技术构思,本发明实施例还提供了一种更新寄存器的装置,如图3所所示,包括:控制模块302、寄存器处理模块301和中断处理模块303。
控制模块302指示寄存器处理模块301执行更新寄存器的第一线程,所述第一线程对应的操作包括:读取寄存器的数据,将读取到的数据存储到第一内存区域,更新所述第一内存区域中的数据,将更新后的数据写入所述寄存器。
在所述第一线程执行期间,若接收到请求写寄存器的指令,控制模块302根据所述请求写寄存器的指令指示寄存器处理模块301中断执行所述第一线程,执行第二线程,指示所述中断处理模块303根据所述请求写寄存器的指令在第二内存区域写入数据,指示所述寄存器处理模块301恢复执行所述第一线程,在所述第一线程执行完成后,指示寄存器处理模块再次执行所述第一线程。其中,所述请求写寄存器的指令的优先级高于所述第一线程的优先级;在所述第一线程执行完成后,指示所述寄存器处理模块301再次执行第一线程,所述再次执行的第一线程对应的操作包括:读取寄存器的数据,将读取到的数据存储到第三内存区域,根据所述第二内存区域中的数据更新所述第三内存区域中的数据,将所述第三内存区域更新后的数据写入所述寄存器。
在上述流程中,所述寄存器处理模块301在更新所述第一内存区域中的数据时,仅更新所述第一内存区域所存储寄存器数据中的第一比特位上的数据,所述第一比特位的数据为所述光模块的状态数据或控制数据;根据所述请求写寄存器的指令在第二内存区域写入数据时,写入的数据为寄存器数据中的第二比特位数据,所述第二比特位的数据为所述光模块的状态和控制数据。
在上述流程中,所述寄存器处理模块301根据所述第二内存区域中的所述第二比特位数据,更新所述第三内存区域中的寄存器数据中的第二比特位数据,保持所述第三内存区域中的寄存器数据中的其余比特位数据不变。
在上述流程中,所述寄存器处理模块301根据设定周期执行所述更新寄存器的第一线程。
在上述实施例中,所述第一比特位为所述光模块中的寄存器数据中的第7比特位,所述第7比特位的数据用于反映TX Disable引脚的状态,所述第二比特位为所述光模块中的寄存器数据中的第6比特位,所述第6比特位的数据用于指示关断光模块发射部分。
本发明的上述实施例提供的装置,在更新寄存器时,首先读取寄存器的数据并存储到第一内存区域,更新所述第一内存区域中的数据,再将更新后的数据写入寄存器。若在更新寄存器的过程中,主机请求写该寄存器,则先将主机写入的数据存储在第二内存区域中,待更新寄存器过程结束后,再读取寄存器中的数据存储到第三内存区域中,根据所述第二内存区域中的数据更新第三内存区域中的数据,将所述第三内存区域中更新后的数据写入所述寄存器。根据上述的方法,主机请求写入的数据不是直接写入寄存器,而是先写入第三内存区域,待寄存器更新完成后再将第三内存区域中的数据写入寄存器,避免了主机写入寄存器的信息在寄存器更新过程中被覆盖进而导致通信失效的情况发生。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种更新寄存器的方法,其特征在于,包括:
执行更新寄存器的第一线程,所述第一线程对应的操作包括:读取寄存器的数据,将读取到的数据存储到第一内存区域,更新所述第一内存区域中的数据,将更新后的数据写入所述寄存器;
在所述第一线程执行期间,若接收到主机发送的请求写寄存器的指令,则根据所述请求写寄存器的指令中断执行所述第一线程,执行第二线程,所述第二线程对应的操作包括:根据所述请求写寄存器的指令在第二内存区域写入数据,恢复执行所述第一线程,在所述第一线程执行完成后,再次执行第一线程;所述请求写寄存器的指令的优先级高于所述第一线程的优先级;
所述再次执行的第一线程对应的操作包括:读取寄存器的数据,将读取到的数据存储到第三内存区域,根据所述第二内存区域中的数据更新所述第三内存区域中的数据,将所述第三内存区域更新后的数据写入所述寄存器。
2.如权利要求1所述的方法,其特征在于,所述更新所述第一内存区域的数据,包括:更新所述第一内存区域中存储的寄存器数据中的第一比特位数据;
在所述第二内存区域写入的数据为寄存器数据中的第二比特位数据。
3.如权利要求2所述的方法,其特征在于,所述根据所述第二内存区域中的数据更新所述第三内存区域的数据,包括:
根据所述第二内存区域中的所述第二比特位数据,更新所述第三内存区域中的寄存器数据中的第二比特位数据,保持所述第三内存区域中的寄存器数据中的其余比特位数据不变。
4.如权利要求2或3所述的方法,其特征在于,所述第一比特位数据为光模块的状态数据或控制数据,所述第二比特位数据为所述光模块的状态和控制数据。
5.如权利要求1所述的方法,其特征在于,所述执行更新寄存器的第一线程,包括:
根据设定周期执行所述更新寄存器的第一线程。
6.一种更新寄存器的装置,其特征在于,包括:控制模块、寄存器处理模块和中断处理模块;
所述控制模块:用于指示所述寄存器处理模块执行更新寄存器的第一线程,所述第一线程对应的操作包括:读取寄存器的数据,将读取到的数据存储到第一内存区域,更新所述第一内存区域中的数据,将更新后的数据写入所述寄存器;
在所述第一线程执行期间,若接收到请求写寄存器的指令,则根据所述请求写寄存器的指令指示所述寄存器处理模块中断执行所述第一线程,执行第二线程,指示所述中断处理模块根据所述请求写寄存器的指令在第二内存区域写入数据,指示所述寄存器处理模块恢复执行所述第一线程,在所述第一线程执行完成后,指示寄存器处理模块再次执行所述第一线程;所述请求写寄存器的指令的优先级高于所述第一线程的优先级;以及
所述再次执行的第一线程对应的操作包括:读取寄存器的数据,将读取到的数据存储到第三内存区域,根据所述第二内存区域中的数据更新所述第三内存区域中的数据,将所述第三内存区域更新后的数据写入所述寄存器。
7.如权利要求6所述的装置,其特征在于,所述寄存器处理模块,具体用于:更新所述第一内存区域中存储的寄存器数据中的第一比特位数据;
在所述第二内存区域写入的数据为寄存器数据中的第二比特位数据。
8.如权利要求7所述的装置,其特征在于,所述寄存器处理模块,具体用于:
根据所述第二内存区域中的第二比特位数据,更新所述第三内存区域中的寄存器数据中的第二比特位数据,保持所述第三内存区域中的寄存器数据中的其余比特位数据不变。
9.如权利要求7或8所述的装置,其特征在于,所述第一比特位数据为光模块的状态数据或控制数据,所述第二比特位数据为所述光模块的状态和控制数据。
10.如权利要求6所述的装置,其特征在于,所述寄存器处理模块,还用于:
根据设定周期执行所述更新寄存器的第一线程。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510542101.6A CN105138308B (zh) | 2015-08-28 | 2015-08-28 | 一种更新寄存器的方法及装置 |
PCT/CN2016/074052 WO2017036101A1 (zh) | 2015-08-28 | 2016-02-18 | 一种更新寄存器的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510542101.6A CN105138308B (zh) | 2015-08-28 | 2015-08-28 | 一种更新寄存器的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105138308A CN105138308A (zh) | 2015-12-09 |
CN105138308B true CN105138308B (zh) | 2018-02-27 |
Family
ID=54723667
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510542101.6A Active CN105138308B (zh) | 2015-08-28 | 2015-08-28 | 一种更新寄存器的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105138308B (zh) |
WO (1) | WO2017036101A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9361027B1 (en) * | 2014-12-16 | 2016-06-07 | Texas Instruments Incorporated | System and method for fast modification of register content |
CN105138308B (zh) * | 2015-08-28 | 2018-02-27 | 青岛海信宽带多媒体技术有限公司 | 一种更新寄存器的方法及装置 |
CN109743105A (zh) * | 2019-01-08 | 2019-05-10 | 郑州云海信息技术有限公司 | 智能网卡光模块管理方法、装置、系统及智能网卡和介质 |
CN112052041B (zh) * | 2020-10-10 | 2022-03-11 | 乐鑫信息科技(上海)股份有限公司 | 更新寄存器的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096676A (zh) * | 2009-12-11 | 2011-06-15 | 中国移动通信集团公司 | 数据更新及查询控制方法及系统 |
CN103729166A (zh) * | 2012-10-10 | 2014-04-16 | 华为技术有限公司 | 程序的线程关系确定方法、设备及系统 |
CN103970505A (zh) * | 2013-01-24 | 2014-08-06 | 想象力科技有限公司 | 具有多个子寄存器文件的寄存器文件 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200511111A (en) * | 2003-07-30 | 2005-03-16 | Koninkl Philips Electronics Nv | Microcontroller with an interrupt structure having programmable priority levels with each priority level associated with a different register set |
CN100530111C (zh) * | 2007-09-10 | 2009-08-19 | 中兴通讯股份有限公司 | 一种多线程访问间接寄存器的调度方法 |
US8521995B2 (en) * | 2009-12-15 | 2013-08-27 | Intel Corporation | Handling operating system (OS) transitions in an unbounded transactional memory (UTM) mode |
JP6179369B2 (ja) * | 2013-11-22 | 2017-08-16 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
CN105138308B (zh) * | 2015-08-28 | 2018-02-27 | 青岛海信宽带多媒体技术有限公司 | 一种更新寄存器的方法及装置 |
-
2015
- 2015-08-28 CN CN201510542101.6A patent/CN105138308B/zh active Active
-
2016
- 2016-02-18 WO PCT/CN2016/074052 patent/WO2017036101A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096676A (zh) * | 2009-12-11 | 2011-06-15 | 中国移动通信集团公司 | 数据更新及查询控制方法及系统 |
CN103729166A (zh) * | 2012-10-10 | 2014-04-16 | 华为技术有限公司 | 程序的线程关系确定方法、设备及系统 |
CN103970505A (zh) * | 2013-01-24 | 2014-08-06 | 想象力科技有限公司 | 具有多个子寄存器文件的寄存器文件 |
Also Published As
Publication number | Publication date |
---|---|
CN105138308A (zh) | 2015-12-09 |
WO2017036101A1 (zh) | 2017-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8656228B2 (en) | Memory error isolation and recovery in a multiprocessor computer system | |
CN105138308B (zh) | 一种更新寄存器的方法及装置 | |
US20160004478A1 (en) | Wait-free algorithm for inter-core, inter-process, or inter-task communication | |
CN107590070B (zh) | 一种业务流程调试方法及装置 | |
CN113064748B (zh) | 进程接替的方法、装置、电子设备及存储介质 | |
CN104598402A (zh) | 一种闪存控制器和闪存控制器的控制方法 | |
CN109885466B (zh) | 处理器c8000的仿真方法、系统及介质 | |
CN103207824B (zh) | 监控模式下不受复位干扰的仿真器 | |
CN110532164A (zh) | 半导体设备和调试方法 | |
CN104836710B (zh) | 一种基于分布式系统一主多从通信的方法与装置 | |
CN102388359A (zh) | 信号保序方法和装置 | |
CN107731154B (zh) | Led显示屏数据备份装置、方法及终端设备 | |
CN105183676A (zh) | 对存储器写保护的系统及方法 | |
CN109710187A (zh) | NVMe SSD主控芯片的读命令加速方法、装置、计算机设备及存储介质 | |
CN111309265B (zh) | 基于神经网络的节点存储方法、系统、服务器及存储介质 | |
CN109582634A (zh) | 总线系统 | |
CN1973272A (zh) | 在与并行通信总线耦合的设备中排队中断消息的计算机系统和方法 | |
CN103809717B (zh) | 复位方法和网络设备 | |
KR102102335B1 (ko) | 이중 메모리 구조 및 이를 이용한 plc의 메시지 처리 방법 | |
CN107220553A (zh) | 一种保护bios芯片中存储的内容的装置及控制芯片 | |
US9721048B1 (en) | Multiprocessing subsystem with FIFO/buffer modes for flexible input/output processing in an emulation system | |
WO2012172682A1 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
CN109885402B (zh) | 测试函数输出数据溢出的方法、终端设备及存储介质 | |
CN106021089B (zh) | 一种补丁接口的测试方法及装置 | |
CN107463520A (zh) | 一种基于可编程逻辑的双口ram防冲突方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |