CN106940684A - 一种按比特写数据的方法及装置 - Google Patents
一种按比特写数据的方法及装置 Download PDFInfo
- Publication number
- CN106940684A CN106940684A CN201610005115.9A CN201610005115A CN106940684A CN 106940684 A CN106940684 A CN 106940684A CN 201610005115 A CN201610005115 A CN 201610005115A CN 106940684 A CN106940684 A CN 106940684A
- Authority
- CN
- China
- Prior art keywords
- write
- bit
- written
- bwc
- data
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1678—Details of memory controller using bus width
Abstract
本发明实施例提供一种按比特写数据的方法及装置,涉及芯片技术领域,能够降低对系统总线的带宽的占用率。该方法包括:CPU通过系统总线向BWC发送第一写命令,第一写命令中包括待写比特的写地址、需向待写比特写入的写数据、待写比特的起始位以及待写比特的结束位,第一写命令用于触发BWC根据写地址,将写数据写入由起始位和结束位指示的待写比特。该方法应用于SOC芯片中。
Description
技术领域
本发明涉及芯片技术领域,尤其涉及一种按比特写数据的方法及装置。
背景技术
随着芯片技术的不断发展,片上系统(英文:system on chip,缩写:SOC)(也称为系统级芯片)的应用越来越广泛。
通常,在SOC内部,寄存器的位宽(即每次对寄存器进行读写的最大比特数)一般是32个比特,若中央处理器(英文:centralprocessing unit,缩写:CPU)需要对寄存器中的某个特定比特写数据,则CPU需要先从寄存器中读出全部32个比特的数据(以下简称原数据),然后再对该特定比特写数据,最后再将写数据后的32个比特的数据(以下简称新数据)写入寄存器。示例性的,如图1所示,为CPU对寄存器中的第二个比特(以下简称b2)写数据的示意图。具体的,当CPU需要对寄存器中的b2写数据,则CPU首先通过系统总线发送读命令,从寄存器中读出原数据(例如10…01010);然后CPU将需写入数据写入b2(例如将b2写为1),最后CPU再通过系统总线发送写命令将新数据(例如10…01110)写入寄存器,从而完成按比特写数据的过程。
然而,上述按比特写数据的过程中,由于完成一次写数据就需要CPU通过系统总线发送两次命令,即CPU通过系统总线发送一次读命令以及通过系统总线发送一次写命令,因此导致对系统总线的带宽的占用率较高。
发明内容
本发明的实施例提供一种按比特写数据的方法及装置,能够降低对系统总线的带宽的占用率。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供一种按比特写数据的方法,所述方法包括:
中央处理器CPU通过系统总线向按比特写数据控制器BWC发送第一写命令,所述第一写命令中包括待写比特的写地址、需向所述待写比特写入的写数据、所述待写比特的起始位以及所述待写比特的结束位,所述第一写命令用于触发所述BWC根据所述写地址,将所述写数据写入由所述起始位和所述结束位指示的所述待写比特。
第二方面,本发明实施例提供一种按比特写数据的方法,所述方法包括:
按比特写数据控制器BWC通过系统总线接收中央处理器CPU发送的第一写命令,所述第一写命令中包括待写比特的写地址、需向所述待写比特写入的写数据、所述待写比特的起始位以及所述待写比特的结束位;
所述BWC根据所述写地址,将所述写数据写入由所述起始位和所述结束位指示的所述待写比特。
第三方面,本发明实施例提供一种中央处理器CPU,所述CPU包括:
发送单元,用于通过系统总线向按比特写数据控制器BWC发送第一写命令,所述第一写命令中包括待写比特的写地址、需向所述待写比特写入的写数据、所述待写比特的起始位以及所述待写比特的结束位,所述第一写命令用于触发所述BWC根据所述写地址,将所述写数据写入由所述起始位和所述结束位指示的所述待写比特。
第四方面,本发明实施例提供一种按比特写数据控制器BWC,所述BWC包括:
接收单元,用于通过系统总线接收中央处理器CPU发送的第一写命令,所述第一写命令中包括待写比特的写地址、需向所述待写比特写入的写数据、所述待写比特的起始位以及所述待写比特的结束位;
写入单元,用于根据所述接收单元接收的所述写地址,将所述接收单元接收的所述写数据写入由所述起始位和所述结束位指示的所述待写比特。
本发明实施例提供一种按比特写数据的方法及装置,由CPU通过系统总线向BWC发送第一写命令,第一写命令中包括待写比特的写地址、需向待写比特写入的写数据、待写比特的起始位以及待写比特的结束位,第一写命令用于触发BWC根据写地址,将写数据写入由该起始位和该结束位指示的待写比特。
基于上述技术方案,由于CPU可以将待写比特的写地址、需向待写比特写入的写数据、待写比特的起始位以及待写比特的结束位携带在写命令中发送给BWC,由BWC根据该写地址,将该写数据写入由该起始位和该结束位指示的待写比特,因此本发明实施例提供的按比特写数据的方法中,CPU只需要通过系统总线向BWC发送一次写命令,即第一写命令就可以完成按比特写数据的过程,而无需像现有技术一样需要CPU通过系统总线发送两次命令才能完成按比特写数据的过程,从而能够降低对系统总线的带宽的占用率。
附图说明
图1为现有技术提供的CPU对寄存器写数据的示意图;
图2为本发明实施例提供的SOC的结构示意图;
图3为本发明实施例提供的按比特写数据的方法示意图一;
图4为本发明实施例提供的数据格式示意图;
图5为本发明实施例提供的按比特写数据的方法示意图二;
图6为本发明实施例提供的按比特写数据的方法示意图三;
图7为本发明实施例提供的按比特写数据的方法示意图四;
图8为本发明实施例提供的按比特写数据的方法示意图五;
图9为本发明实施例提供的CPU对寄存器写数据的示意图;
图10为本发明实施例提供的CPU的结构示意图一;
图11为本发明实施例提供的CPU的结构示意图二;
图12为本发明实施例提供的BWC的结构示意图一;
图13为本发明实施例提供的BWC的结构示意图二。
具体实施方式
本文中字符“/”,一般表示前后关联对象是一种“或者”的关系。例如,A/B可以理解为A或者B。
本发明的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一写命令和第二写命令等是用于区别不同的命令,而不是用于描述命令的特征顺序。
本发明实施例中,第n个比特与bn可以互相替换,例如第二个比特也可以表示为b2、第三个比特也可以表示为b3等。
在本发明的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个CPU是指两个或两个以上CPU;多个寄存器是指两个或两个以上寄存器。
此外,本发明的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排它的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透切理解本发明。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
下面结合附图对本发明实施例提供的按比特写数据的方法及装置进行详细地描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。
本发明实施例提供的按比特写数据的方法及装置可以应用于SOC中。如图2所示,为本发明实施例提供的一种SOC的结构示意图。在图2中,SOC包括CPU 10、寄存器11、按比特写控制器(英文:bit writecontroller,缩写:BWC)12和系统总线13。其中CPU 10和BWC 12之间通过系统总线13连接并完成相互间的通信。
可选的,本发明实施例中,上述BWC可以为独立于寄存器的一个控制器,也可以为集成在寄存器中的一个控制模块,具体的实现形式可以根据SOC的形态/SOC的实际使用需求/SOC的实际应用场景来确定,本发明不作具体限定。
可选的,本发明实施例中,SOC可以包括多个CPU,也可以包括多个寄存器。具体的,SOC可以包括一个CPU和一个寄存器;SOC也可以包括一个CPU和多个寄存器;SOC还可以包括多个CPU和多个寄存器,具体的实现形式可以根据SOC的形态/SOC的实际使用需求/SOC的实际应用场景来确定,本发明不作具体限定。
本发明的下述实施例中所提到的系统总线的带宽均是指SOC中的系统总线的带宽。
需要说明的是,本发明实施例中,为了描述方便,且易于理解本发明实施例提供的各种实现方式,上述图2中均以SOC包括一个CPU和一个寄存器为例进行示意。对于SOC包括一个CPU和多个寄存器,以及SOC包括多个CPU和多个寄存器的情况与如图2所示的SOC包括一个CPU和一个寄存器的情况类似,此处不再赘述。
如图3所示,本发明实施例提供一种按比特写数据的方法,该方法可以包括:
S101、CPU通过系统总线向BWC发送第一写命令。
其中,上述第一写命令中包括待写比特的写地址、需向待写比特写入的写数据、待写比特的起始位以及待写比特的结束位。第一写命令用于触发BWC根据该写地址,将该写数据写入由该起始位和该结束位指示的待写比特。
本发明实施例中,上述待写比特为寄存器中的特定比特。例如,若需要对寄存器中的b2写数据,则b2为待写比特,同时b2也可以称为寄存器中的特定比特。
上述待写比特的写地址可以理解为待写比特所属的寄存器的地址。该地址通常采用32个比特表示,具体的,该写地址与现有技术中CPU向寄存器写数据的写地址完全相同,具体可参见现有技术中对写地址的具体定义和相关描述,此处不再赘述。
上述待写比特的起始位和待写比特的结束位用于指示待写比特。例如,假设待写比特的起始位为0,待写比特的结束位为4,则由待写比特的起始位和待写比特的结束位指示的待写比特为第零个比特至第四个比特(可以表示为b0至b3,即b0、b1、b2和b3)。
举例来说,假设待写比特为b2,且需向b2写入的写数据为“1”,则CPU通过系统总线向BWC发送的第一写命令中包括:b2的写地址、“1”、b2的起始位(即b2)和b2的结束位(即b2)。其中,由于本实施例中,只需向b2,即一个比特写入写数据,因此b2的起始位和b2的结束位相同,表示只需向b2写入写数据。
假设待写比特为b1至b4,且需向b1至b4写入的写数据为“1010”,则CPU通过系统总线向BWC发送的第一写命令中包括:b1至b4的写地址、“1010”、b1至b4的起始位(即b1)和b1至b4的结束位(即b4)。
本发明实施例中,假设寄存器的位宽为2n个比特,则由于待写比特的结束位的最大值为2n,因此可以分别用n个比特表示待写比特的起始位和待写比特的结束位,用其余比特(即2n-n-n个比特)表示需向待写比特写入的写数据。
一种可能的实现方式中,如图4所示,假设用2n个比特中的b[n-1:0],即n个比特表示待写比特的起始位;用2n个比特中的b[2n-1:n],即n个比特表示待写比特的结束位;用2n个比特中的b[2n-1:2n],即其余(2n-n-n)个比特表示需向待写比特写入的写数据。
上述如图4所示的实现方式仅是为了对本发明实施例提供的按比特写数据的方法进行示例性的说明,具体的,本发明可以不限定如图4所示的表示待写比特的起始位、待写比特的结束位和需向待写比特写入的写数据的形式,即本领域技术人员还可以按照其他可能/需求的方式表示待写比特的起始位、待写比特的结束位和需向待写比特写入的写数据。
举例来说,假设寄存器的位宽为32,即25个比特,则可以用32个比特中的b[4:0],即5个比特表示待写比特的起始位;用32个比特中的b[9:5],即5个比特表示待写比特的结束位;用32个比特中的b[31:10],即其余22个比特表示需向待写比特写入的写数据。
例如,若需要对单比特写数据,假设待写比特为b2,且需向待写比特写入的写数据为“1”,则b2的起始位b2可以表示为b[4:0]=5’b00010;b2的结束位b2可以表示为b[9:5]=5’b00010;写数据可以表示为b[31:10]=22’b1。因此,本发明实施例中,CPU通过系统总线向BWC发送的第一写命令中的写数据、待写比特的起始位和待写比特的结束位组成的32位数据可以表示为:32’b00000000000000000000010001000010,其中,该32位数据为二进制形式。将该32位数据转换为16进制可以表示为:32’h442。
又例如,若需要对多比特写数据,假设待写比特为b1至b4,且需向待写比特写入的写数据为“1010”,则b1至b4的起始位b1可以表示为b[4:0]=5’b00001;b1至b4的结束位b4可以表示为b[9:5]=5’b00100;写数据可以表示为b[31:10]=22’b1010。因此,本发明实施例中,CPU通过系统总线向BWC发送的第一写命令中的写数据、待写比特的起始位和待写比特的结束位组成的32位数据可以表示为:32’b00000000000000000010100010000001,其中,该32位数据为二进制形式。将该32位数据转换为16进制可以表示为:32’h2881。
需要说明的是,本发明实施例提供的按比特写数据的方法中,对于位宽为2n个比特的寄存器,BWC需要按照2n位数据的形式对该寄存器进行读写操作,例如BWC需要按照32位数据的形式对该寄存器进行读写操作。
本发明实施例提供的按比特写数据的方法,由CPU通过系统总线向BWC发送第一写命令,第一写命令中包括待写比特的写地址、需向待写比特写入的写数据、待写比特的起始位以及待写比特的结束位,第一写命令用于触发BWC根据写地址,将写数据写入由该起始位和该结束位指示的待写比特。
基于上述技术方案,由于CPU可以将待写比特的写地址、需向待写比特写入的写数据、待写比特的起始位以及待写比特的结束位携带在写命令中发送给BWC,由BWC根据该写地址,将该写数据写入由该起始位和该结束位指示的待写比特,因此本发明实施例提供的按比特写数据的方法中,CPU只需要通过系统总线向BWC发送一次写命令,即第一写命令就可以完成按比特写数据的过程,而无需像现有技术一样需要CPU通过系统总线发送两次命令才能完成按比特写数据的过程,从而能够降低对系统总线的带宽的占用率。
进一步地,本发明实施例提供的按比特写数据的方法中,由于CPU无需再对寄存器中的数据进行修改的操作,因此CPU可以进行除修改之外的其他操作,从而可以降低CPU的占用率。
如图5所示,本发明实施例提供一种按比特写数据的方法,该方法可以包括:
S201、BWC通过系统总线接收CPU发送的第一写命令,第一写命令中包括待写比特的写地址、需向待写比特写入的写数据、待写比特的起始位以及待写比特的结束位。
对于上述S201的描述具体可参见上述如图3所示的实施例中对S101的相关描述,此处不再赘述。
S202、BWC根据该写地址,将该写数据写入由该起始位和该结束位指示的待写比特。
BWC接收到CPU发送的第一写命令之后,BWC根据第一写命令中的写地址,确定待写比特所处的位置(也可以理解为待写比特所属的寄存器所处的位置),并将第一写命令中的写数据写入该位置中由待写比特的起始位和待写比特的结束位指示的待写比特,从而完成按比特写数据的过程。
具体的,BWC将写数据写入待写比特的方法将在下述实施例中进行详细地描述,此处不再赘述。
本发明实施例提供的按比特写数据的方法,由BWC通过系统总线接收CPU发送的第一写命令,第一写命令中包括待写比特的写地址、需向待写比特写入的写数据、待写比特的起始位以及待写比特的结束位;且由BWC根据该写地址,将该写数据写入由该起始位和该结束位指示的待写比特。
基于上述技术方案,由于BWC通过系统总线接收到的CPU发送的写命令中携带待写比特的写地址、需向待写比特写入的写数据、待写比特的起始位以及待写比特的结束位,且BWC根据该写地址,将该写数据写入由该起始位和该结束位指示的待写比特,因此本发明实施例提供的按比特写数据的方法中,CPU只需要通过系统总线向BWC发送一次写命令,即第一写命令就可以完成按比特写数据的过程,而无需像现有技术一样需要CPU通过系统总线发送两次命令才能完成按比特写数据的过程,从而能够降低对系统总线的带宽的占用率。
如图6所示,本发明实施例提供一种按比特写数据的方法,该方法可以包括:
S301、CPU通过系统总线向BWC发送第一写命令。
其中,第一写命令中包括待写比特的写地址、需向待写比特写入的写数据、待写比特的起始位以及待写比特的结束位。
对于上述S301的描述具体可参见上述如图3所示的实施例中对S101的相关描述,此处不再赘述。
S302、BWC通过系统总线接收CPU发送的第一写命令。
S303、BWC根据该写地址,将该写数据写入由该起始位和该结束位指示的待写比特。
对于上述S302和S303的描述具体可参见上述如图5所示的实施例中对S201和S202的相关描述,此处不再赘述。
S304、BWC通过系统总线向CPU发送响应信号。
其中,响应信号可用于指示BWC向待写比特写入写数据的状态,即指示BWC向待写比特写入写数据是否成功。例如,若响应信号为“OK”,则响应信号可用于指示BWC向待写比特写入写数据成功;若响应信号为“ERROR”,则响应信号可用于指示BWC向待写比特写入写数据失败。
S305、CPU通过系统总线接收BWC发送的响应信号。
S306、CPU根据响应信号,确定BWC向待写比特写入写数据是否成功。
本发明实施例中,当BWC根据CPU发送的第一写命令向待写比特写入写数据后,BWC可以向CPU返回一个响应信号,用于告知CPU是否成功向待写比特写入写数据,从而CPU可以根据该响应信号进行下一步操作。例如,若CPU获知BWC向待写比特写入写数据成功,则CPU可继续向BWC发送下一次写命令,以触发BWC进行下一次写操作;若CPU获知BWC向待写比特写入写数据失败,则CPU可继续重复向BWC发送写命令,以触发BWC重新进行本次写操作。从而能够保证需写入的写数据可以成功写入待写比特,且不会对待写比特重复写入,进而提高了写操作的准确率和写操作的效率。
本发明实施例提供的按比特写数据的方法,由于CPU可以将待写比特的写地址、需向待写比特写入的写数据、待写比特的起始位以及待写比特的结束位携带在写命令中发送给BWC,由BWC根据该写地址,将该写数据写入由该起始位和该结束位指示的待写比特,因此本发明实施例提供的按比特写数据的方法中,CPU只需要通过系统总线向BWC发送一次写命令,即第一写命令就可以完成按比特写数据的过程,而无需像现有技术一样需要CPU通过系统总线发送两次命令才能完成按比特写数据的过程,从而能够降低对系统总线的带宽的占用率。
进一步地,由于BWC向待写比特写入写数据后,BWC可以向CPU返回响应信号,因此能够使得CPU即使获知BWC是否成功向待写比特写入写数据,从而CPU可相应地及时进行下一步操作。如此能够保证需写入的写数据可以成功写入待写比特,且不会对待写比特重复写入,进而提高了写操作的准确率和写操作的效率。
结合图6,如图7所示,本发明实施例提供的按比特写数据的方法中,上述S303具体可以包括:
S303a、BWC向由写地址指示的寄存器发送读命令。
其中,读命令用于读取由写地址指示的寄存器中的第一数据。该第一数据即为寄存器中的原始数据。
S303b、BWC接收寄存器发送的第一数据。
S303c、BWC将第一数据中由待写比特的起始位和待写比特的结束位指示的待写比特的数据修改为写数据,得到第二数据。
示例性的,假设第一数据为“10000010001001000110001001000010”,待写比特为b1至b4,写数据为“1010”,则BWC将第一数据中的b1至b4由“”修改为“1010”,修改后的“10000010001001000110001001010100”即为第二数据。
S303d、BWC向寄存器发送第二写命令,第二写命令中包括第二数据。
其中,第二写命令用于将第二数据写入由写地址指示的寄存器中。
BWC通过向寄存器发送第二写命令,将对第一数据修改后得到的第二数据写入由写地址指示的寄存器中,从而完成BWC按比特向待写比特写入写数据的过程。
本发明实施例中,由于CPU只需通过系统总线向BWC发送一次写命令,即第一写命令,就可以由BWC完成按比特向待写比特写入写数据的过程,且由于BWC向待写比特写入写数据的过程无需经过系统总线,因此采用本发明实施例提供的按比特写数据的方法可以降低对系统总线的带宽的占用率。
可选的,结合图7,如图8所示,本发明实施例提供的按比特写数据的方法中,在S302之后,S303a之前,该方法还可以包括:
S307、BWC确定写地址为预设的虚拟地址空间中的虚拟地址。
S308、BWC根据预设的地址映射关系,确定预设的实际地址空间中与该虚拟地址对应的实际地址。
其中,地址映射关系可以用于指示虚拟地址和实际地址之间的映射关系,且在这种情况下,上述由写地址指示的寄存器为由该实际地址指示的寄存器。
具体的,在实际实现中,地址映射关系可以用于指示虚拟地址空间中的每个虚拟地址与实际地址空间中的每个实际地址之间的映射关系。
本发明实施例中,为了兼容按位宽写数据和按比特写数据,可以预先将寄存器的物理地址配置为对该寄存器按位宽写数据的实际地址,并为该寄存器配置按比特写数据的虚拟地址,然后再建立该虚拟地址与该实际地址之间的映射关系,如此,对于每个寄存器均可以按照实际需求进行按位宽写数据和按比特写数据,从而使得对寄存器的操作更加灵活。
示例性的,假设预先将每个寄存器的物理地址配置为对该寄存器按位宽写数据的实际地址,则这些实际地址可形成一个实际地址空间(即上述的实际地址空间),例如,该实际地址空间为32’h00000100至32’h000001FF;再为每个寄存器分别配置一个按比特写数据的虚拟地址,则这些虚拟地址可形成一个虚拟地址空间(即上述的虚拟地址空间),例如该虚拟地址空间为32’h00000200至32’h000002FF;然后再建立该虚拟地址空间中的每个虚拟地址和该实际地址空间中的每个实际地址之间的映射关系。
如表1所示,为本发明实施例提供的一种虚拟地址和实际地址之间的映射关系的表。
表1
如图8所示的实施例中,当BWC接收到CPU发送的第一写命令之后,BWC可判断第一写命令中包括的写地址为实际地址空间中的实际地址还是虚拟地址空间中的虚拟地址,若BWC确定该写地址为实际地址空间中的实际地址,则BWC可确定需要对由该写地址指示的寄存器进行按位宽写数据的操作,从而BWC可直接将该第一写命令转发给该寄存器(即BWC对该第一写命令不作任何响应和操作);若BWC确定该写地址为虚拟地址空间中的虚拟地址,则BWC可确定需要对由该写地址指示的寄存器进行按比特写数据的操作,从而BWC可采用本发明实施例提供的按比特写数据的方法对该寄存器进行写操作。
示例性的,结合表1,当BWC接收到CPU发送的第一写命令中包括的写地址为32’h00000100,则BWC可确定需要对由该写地址指示的寄存器进行按位宽写数据的操作,从而BWC可直接将该第一写命令转发给该寄存器(即BWC对该第一写命令不作任何响应和操作);当BWC接收到CPU发送的第一写命令中包括的写地址为32’h00000200,则BWC可确定需要对由该写地址指示的寄存器进行按比特写数据的操作,从而BWC可采用本发明实施例提供的按比特写数据的方法对该寄存器进行写操作。
进一步地,当BWC接收到CPU发送的第一写命令中包括的写地址为虚拟地址空间中的某个虚拟地址时,BWC在向寄存器发送读命令之前,首先需要根据虚拟地址空间中的每个虚拟地址与实际地址空间中的每个实际地址之间的映射关系,确定与该虚拟地址对应的实际地址,然后再向由该实际地址指示的寄存器发送读命令,以完成对该寄存器按比特写数据的操作。
当然,本发明实施例中,为了兼容按位宽写数据和按比特写数据,也可以将寄存器的物理地址配置为对该寄存器按比特写数据的实际地址,并为该寄存器配置按位宽写数据的虚拟地址,然后再建立该虚拟地址与该实际地址之间的映射关系。具体的,可根据实际使用需求进行配置,本发明不作具体限定。
可选的,本发明实施例提供的按比特写数据的方法中,当BWC接收到CPU发送的第一写命令时,在BWC向寄存器发送读命令之前,BWC首先需要设置其操作信号(例如ready信号)的电平为第一电平,其中,第一电平用于指示BWC处于忙碌状态;且在BWC向寄存器发送第二写命令之后,BWC还需要设置该操作信号的电平为第二电平,其中,第二电平用于指示BWC处于空闲状态。如此,系统总线可以根据该操作信号的电平及时获知BWC的状态,从而进行下一步操作。
上述第一电平可以为高电平,第二电平可以为低电平;或者第一电平可以为低电平,第二电平可以为高电平。具体的,可以根据实际的SOC采用的通信协议来确定,本发明不作具体限定。
本发明实施例中,可以用数字信号“1”表示高电平,用数字信号“0”表示低电平,还可以采用其他可能的实现方式表示高电平和低电平,本发明不作具体限定。
需要说明的是,本发明实施例中,CPU通过系统总线发送的命令需要经过系统总线译码后发送给BWC。具体的,系统总线对命令译码的方法与现有技术中系统总线对命令译码的方法相同,此处不再赘述。
为了更加清楚地说明本发明实施例提供的按比特写数据的方法的实现方式,下面以图9为例对本发明实施例提供的按比特写数据的方法的流程进行示例性的说明。如图9所示,CPU经过系统总线向BWC发送第一写命令,BWC根据第一写命令中包括的写地址(如果该写地址为虚拟地址空间中的虚拟地址,则BWC需要将其映射到实际地址空间中的实际地址),向由该写地址指示的寄存器发送读命令,以读取该寄存器中的第一数据,BWC根据第一写命令中包括的写数据、待写比特的起始位以及待写比特的结束位(图9以待写比特为b2为例)对第一数据修改后得到第二数据,并向由该写地址指示的寄存器发送第二写命令,以将第二数据写入该寄存器中,从而完成按比特写数据的过程。
其中,在图9中,由于BWC主要完成对寄存器的读操作和写操作,因此在实际实现中,可以将BWC设置在离寄存器较近的地方,从而使得只有CPU与BWC之间的通信需要经过系统总线,而BWC和寄存器之间的通信无需经过系统总线。
可以看出,在图9中,完成一次按比特写数据,CPU只需通过系统总线向BWC发送一次写命令(第一写命令),而BWC向寄存器发送的读命令和写命令(第二写命令)由于无需经过系统总线,因此BWC与寄存器之间的通信不会占用系统总线的带宽,从而与现有技术CPU需要通过系统总线发送两次命令才能完成按比特写数据的过程相比,本发明实施例提供的按比特写数据的方法能够降低对系统总线的带宽的占用率。
如图10所示,本发明实施例提供一种CPU,所述CPU包括:
发送单元20,用于通过系统总线向BWC发送第一写命令,所述第一写命令中包括待写比特的写地址、需向所述待写比特写入的写数据、所述待写比特的起始位以及所述待写比特的结束位,所述第一写命令用于触发所述BWC根据所述写地址,将所述写数据写入由所述起始位和所述结束位指示的所述待写比特。
可选的,结合图10,如图11所示,本发明实施例中,所述CPU还可以包括接收单元21和确定单元22,
所述接收单元21,用于通过所述系统总线接收所述BWC发送的响应信号,所述响应信号用于指示所述BWC向所述待写比特写入所述写数据的状态;所述确定单元22,用于根据所述接收单元21接收的所述响应信号,确定所述BWC向所述待写比特写入所述写数据是否成功。
其中,所述接收单元21接收的所述响应信号为与所述发送单元20发送的所述第一写命令对应的响应信号。
本发明实施例提供一种CPU,由于该CPU可以将待写比特的写地址、需向待写比特写入的写数据、待写比特的起始位以及待写比特的结束位携带在写命令中发送给BWC,由BWC根据该写地址,将该写数据写入由该起始位和该结束位指示的待写比特,因此本发明实施例中,CPU只需要通过系统总线向BWC发送一次写命令,即第一写命令就可以完成按比特写数据的过程,而无需像现有技术一样需要CPU通过系统总线发送两次命令才能完成按比特写数据的过程,从而能够降低对系统总线的带宽的占用率。
如图12所示,本发明实施例提供一种BWC,所述BWC包括:
接收单元30,用于通过系统总线接收CPU发送的第一写命令,所述第一写命令中包括待写比特的写地址、需向所述待写比特写入的写数据、所述待写比特的起始位以及所述待写比特的结束位;写入单元31,用于根据所述接收单元30接收的所述写地址,将所述接收单元30接收的所述写数据写入由所述起始位和所述结束位指示的所述待写比特。
可选的,所述写入单元31,具体用于向由所述写地址指示的寄存器发送读命令,接收所述寄存器发送的第一数据,并将所述第一数据中由所述起始位和所述结束位指示的所述待写比特的数据修改为所述写数据,得到第二数据,以及向所述寄存器发送第二写命令,所述读命令用于读取所述寄存器中的所述第一数据,所述第二写命令中包括所述第二数据,所述第二写命令用于将所述第二数据写入所述寄存器中。
可选的,结合图12,如图13所示,本发明实施例中,所述BWC还可以包括确定单元32,
所述确定单元32,用于在所述接收单元30通过系统总线接收CPU发送的第一写命令之后,所述写入单元31向由所述写地址指示的寄存器发送读命令之前,确定所述写地址为预设的虚拟地址空间中的虚拟地址,并根据预设的地址映射关系,确定预设的实际地址空间中与所述虚拟地址对应的实际地址,所述地址映射关系用于指示所述虚拟地址和所述实际地址之间的映射关系;其中,由所述写地址指示的寄存器为由所述实际地址指示的寄存器。
本发明实施例提供一种BWC,由于该BWC通过系统总线接收到的CPU发送的写命令中携带待写比特的写地址、需向待写比特写入的写数据、待写比特的起始位以及待写比特的结束位,且BWC根据该写地址,将该写数据写入由该起始位和该结束位指示的待写比特,因此本发明实施例提供的按比特写数据的方法中,CPU只需要通过系统总线向BWC发送一次写命令,即第一写命令就可以完成按比特写数据的过程,而无需像现有技术一样需要CPU通过系统总线发送两次命令才能完成按比特写数据的过程,从而能够降低对系统总线的带宽的占用率。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种按比特写数据的方法,其特征在于,所述方法包括:
中央处理器CPU通过系统总线向按比特写数据控制器BWC发送第一写命令,所述第一写命令中包括待写比特的写地址、需向所述待写比特写入的写数据、所述待写比特的起始位以及所述待写比特的结束位,所述第一写命令用于触发所述BWC根据所述写地址,将所述写数据写入由所述起始位和所述结束位指示的所述待写比特。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述CPU通过所述系统总线接收所述BWC发送的响应信号,所述响应信号用于指示所述BWC向所述待写比特写入所述写数据的状态;
所述CPU根据所述响应信号,确定所述BWC向所述待写比特写入所述写数据是否成功。
3.一种按比特写数据的方法,其特征在于,所述方法包括:
按比特写数据控制器BWC通过系统总线接收中央处理器CPU发送的第一写命令,所述第一写命令中包括待写比特的写地址、需向所述待写比特写入的写数据、所述待写比特的起始位以及所述待写比特的结束位;
所述BWC根据所述写地址,将所述写数据写入由所述起始位和所述结束位指示的所述待写比特。
4.根据权利要求3所述的方法,其特征在于,所述BWC根据所述写地址,将所述写数据写入由所述起始位和所述结束位指示的所述待写比特,包括:
所述BWC向由所述写地址指示的寄存器发送读命令,所述读命令用于读取所述寄存器中的第一数据;
所述BWC接收所述寄存器发送的所述第一数据;
所述BWC将所述第一数据中由所述起始位和所述结束位指示的所述待写比特的数据修改为所述写数据,得到第二数据;
所述BWC向所述寄存器发送第二写命令,所述第二写命令中包括所述第二数据,所述第二写命令用于将所述第二数据写入所述寄存器中。
5.根据权利要求4所述的方法,其特征在于,所述BWC通过系统总线接收CPU发送的第一写命令之后,所述BWC向由所述写地址指示的寄存器发送读命令之前,所述方法还包括:
所述BWC确定所述写地址为预设的虚拟地址空间中的虚拟地址;
所述BWC根据预设的地址映射关系,确定预设的实际地址空间中与所述虚拟地址对应的实际地址,所述地址映射关系用于指示所述虚拟地址和所述实际地址之间的映射关系;
其中,由所述写地址指示的寄存器为由所述实际地址指示的寄存器。
6.一种中央处理器CPU,其特征在于,所述CPU包括:
发送单元,用于通过系统总线向按比特写数据控制器BWC发送第一写命令,所述第一写命令中包括待写比特的写地址、需向所述待写比特写入的写数据、所述待写比特的起始位以及所述待写比特的结束位,所述第一写命令用于触发所述BWC根据所述写地址,将所述写数据写入由所述起始位和所述结束位指示的所述待写比特。
7.根据权利要求6所述的CPU,其特征在于,所述CPU还包括接收单元和确定单元,
所述接收单元,用于通过所述系统总线接收所述BWC发送的响应信号,所述响应信号用于指示所述BWC向所述待写比特写入所述写数据的状态;
所述确定单元,用于根据所述接收单元接收的所述响应信号,确定所述BWC向所述待写比特写入所述写数据是否成功。
8.一种按比特写数据控制器BWC,其特征在于,所述BWC包括:
接收单元,用于通过系统总线接收中央处理器CPU发送的第一写命令,所述第一写命令中包括待写比特的写地址、需向所述待写比特写入的写数据、所述待写比特的起始位以及所述待写比特的结束位;
写入单元,用于根据所述接收单元接收的所述写地址,将所述接收单元接收的所述写数据写入由所述起始位和所述结束位指示的所述待写比特。
9.根据权利要求8所述的BWC,其特征在于,
所述写入单元,具体用于向由所述写地址指示的寄存器发送读命令,接收所述寄存器发送的第一数据,并将所述第一数据中由所述起始位和所述结束位指示的所述待写比特的数据修改为所述写数据,得到第二数据,以及向所述寄存器发送第二写命令,所述读命令用于读取所述寄存器中的所述第一数据,所述第二写命令中包括所述第二数据,所述第二写命令用于将所述第二数据写入所述寄存器中。
10.根据权利要求9所述的BWC,其特征在于,所述BWC还包括确定单元,
所述确定单元,用于在所述接收单元通过系统总线接收CPU发送的第一写命令之后,所述写入单元向由所述写地址指示的寄存器发送读命令之前,确定所述写地址为预设的虚拟地址空间中的虚拟地址,并根据预设的地址映射关系,确定预设的实际地址空间中与所述虚拟地址对应的实际地址,所述地址映射关系用于指示所述虚拟地址和所述实际地址之间的映射关系;其中,由所述写地址指示的寄存器为由所述实际地址指示的寄存器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610005115.9A CN106940684B (zh) | 2016-01-05 | 2016-01-05 | 一种按比特写数据的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610005115.9A CN106940684B (zh) | 2016-01-05 | 2016-01-05 | 一种按比特写数据的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106940684A true CN106940684A (zh) | 2017-07-11 |
CN106940684B CN106940684B (zh) | 2020-04-21 |
Family
ID=59468444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610005115.9A Active CN106940684B (zh) | 2016-01-05 | 2016-01-05 | 一种按比特写数据的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106940684B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108170470A (zh) * | 2017-12-28 | 2018-06-15 | 杭州中天微系统有限公司 | Soc系统按位写装置 |
CN112394998A (zh) * | 2019-08-13 | 2021-02-23 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5907865A (en) * | 1995-08-28 | 1999-05-25 | Motorola, Inc. | Method and data processing system for dynamically accessing both big-endian and little-endian storage schemes |
CN1881191A (zh) * | 2005-07-19 | 2006-12-20 | 威盛电子股份有限公司 | 用于稀疏线写操作的装置和方法 |
CN101620526A (zh) * | 2009-07-03 | 2010-01-06 | 中国人民解放军国防科学技术大学 | 一种减少流处理器片上指令存储器资源消耗的方法 |
CN104360668A (zh) * | 2014-11-28 | 2015-02-18 | 国网重庆市电力公司电力科学研究院 | 一种数字化变电站的以太网控制器的控制方法 |
-
2016
- 2016-01-05 CN CN201610005115.9A patent/CN106940684B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5907865A (en) * | 1995-08-28 | 1999-05-25 | Motorola, Inc. | Method and data processing system for dynamically accessing both big-endian and little-endian storage schemes |
CN1881191A (zh) * | 2005-07-19 | 2006-12-20 | 威盛电子股份有限公司 | 用于稀疏线写操作的装置和方法 |
CN101620526A (zh) * | 2009-07-03 | 2010-01-06 | 中国人民解放军国防科学技术大学 | 一种减少流处理器片上指令存储器资源消耗的方法 |
CN104360668A (zh) * | 2014-11-28 | 2015-02-18 | 国网重庆市电力公司电力科学研究院 | 一种数字化变电站的以太网控制器的控制方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108170470A (zh) * | 2017-12-28 | 2018-06-15 | 杭州中天微系统有限公司 | Soc系统按位写装置 |
US10824578B2 (en) | 2017-12-28 | 2020-11-03 | C-Sky Microsystems Co., Ltd. | Bitwise writing apparatus for system-on-chip system |
CN112394998A (zh) * | 2019-08-13 | 2021-02-23 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
Also Published As
Publication number | Publication date |
---|---|
CN106940684B (zh) | 2020-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102984123B (zh) | 使用多个消息组的计算机系统中的代理之间的通信消息请求事务类型 | |
CN110442560A (zh) | 一种日志重演方法、装置、服务器和存储介质 | |
US20110004718A1 (en) | System, method, and computer program product for ordering a plurality of write commands associated with a storage device | |
CN102819517A (zh) | Pcie接口卡 | |
CN103176913B (zh) | 硬盘动态映射方法与应用其的服务器 | |
CN106126465A (zh) | 一种数据传输方法及装置 | |
CN104991883A (zh) | 片间互联的发送、接收装置及发送、接收方法及系统 | |
CN106940684A (zh) | 一种按比特写数据的方法及装置 | |
US7822040B2 (en) | Method for increasing network transmission efficiency by increasing a data updating rate of a memory | |
CN101661453A (zh) | 刀片服务器中识别刀片序号的方法 | |
CN115883022B (zh) | Dma传输控制方法、装置、电子设备及可读存储介质 | |
KR20170117326A (ko) | 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치 | |
CN108139993A (zh) | 内存装置、内存控制器、数据缓存装置及计算机系统 | |
CN116049081A (zh) | 一种SMBus slave数字模块设计方法及装置 | |
CN101241478B (zh) | 数据传送方法 | |
CN111444129B (zh) | Mdb数据传输的方法及终端设备 | |
EP2725499A1 (en) | Method for assigning dynamically an identifier to a slave device in I2C data bus | |
CN111579973B (zh) | 芯片同步测试方法、芯片、电子设备及存储介质 | |
JP4291368B2 (ja) | メモリバスチェック手順 | |
US10769079B2 (en) | Effective gear-shifting by queue based implementation | |
CN106325377A (zh) | 外部设备扩展卡及输入输出外部设备的数据处理方法 | |
CN113157602A (zh) | 一种对内存进行分配的方法、设备及计算机可读存储介质 | |
CN113050976A (zh) | 基于PCIe总线的FPGA并行升级方法、装置、介质及电子设备 | |
CN111159078B (zh) | 一种电子设备 | |
CN216014148U (zh) | 一种服务器和服务器背板 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 266100 No. 151, Zhuzhou Road, Laoshan District, Shandong, Qingdao Patentee after: Hisense Video Technology Co.,Ltd. Address before: 266100 No. 151, Zhuzhou Road, Laoshan District, Shandong, Qingdao Patentee before: HISENSE ELECTRIC Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |