用于访问随机存取存储器RAM的方法、装置和系统制造方法及图纸

技术编号:15982347 阅读:54 留言:0更新日期:2017-08-12 05:33
本申请提供了一种用于访问随机存取存储器RAM的方法和装置,该方法包括:处理器通过第一线程读取所述RAM的第一地址的数据,所述第一线程为连续访问所述第一地址的多个线程中的任一线程;所述处理器在通过所述第一线程从所述第一地址读取数据之后,确定与所述第一地址对应的指示信息,所述指示信息用于指示在所述第一线程之前是否有第二线程对所述第一地址进行读改写操作;所述处理器根据所述指示信息,确定所述第一线程的待修改数据;所述处理器对所述第一线程的待修改数据进行修改,生成所述第一线程的回写数据。本申请实施例的方法和装置,能够在多个线程连续对RAM的同一地址进行读改写操作时,有利于降低数据的出错率。

【技术实现步骤摘要】
用于访问随机存取存储器RAM的方法、装置和系统
本申请涉及通信领域,并且更具体地,涉及一种用于访问随机存取存储器RAM的方法、装置和系统。
技术介绍
为了追求低延时、高吞吐率、高性能,当前的网络处理器(NetworkProcessor,NP)广泛使用了硬件多线程技术,它利用多个线程的并发,节省了处理延时,提高了处理性能。而随着NP转发带宽的要求逐渐提升,NP对随机存取存储器(RandomAccessMemory,RAM)容量、访问时延以及成本也有更加苛刻的需求。当前RAM主要有两大类:一种是访问时延固定的RAM,然而它容量小,面积大,成本高;一种是访问时延不固定的RAM,它常被作为独立存储芯片与NP芯片在单板上对接,它容量大,成本低。当NP的多线程连续访问时延不固定的RAM时,进一步地,若线程执行的业务操作需要对RAM进行读改写(Read-Modify-Write,R-M-W)操作,也就是对RAM进行读操作,修改数据,再执行回写。由于RAM读延时不确定,那么多个此类线程连续访问同一RAM地址时的情况下,芯片就会由于触发数据相关性而无法保证被修改的数据是当前最新的,而用旧数据修改后回写到RAM也会使得RAM数据错乱,功能出错。
技术实现思路
本申请提供一种用于访问随机存取存储器RAM的方法和装置,能够在多个线程连续对RAM的同一地址进行读改写操作时,有利于降低数据的出错率。第一方面,提供了一种用于访问随机存取存储器RAM的方法,该方法包括:处理器通过第一线程读取该RAM的第一地址的数据,该第一线程为连续访问该第一地址的多个线程中的任一线程;该处理器在通过该第一线程从该第一地址读取数据之后,确定与该第一地址对应的指示信息,该指示信息用于指示在该第一线程之前是否有该多个线程中的第二线程对该第一地址进行读改写操作;该处理器根据该指示信息,确定该第一线程的待修改数据;该处理器对该第一线程的待修改数据进行修改,生成该第一线程的回写数据。通过指示信息,判断前后线程读取数据的相关性,从而可以获取到最新的数据,避免了在多个线程连续访问同一地址时的数据出错。该多个线程可以是指网络处理器NP使用多线程技术发起的读改写操作,也可以是指其他处理器。例如,微控制器。该多个线程中的任意连续的两个线程发起读改写操作的时间间隔都小于该任意连续的两个线程中的前一个线程完成读改写操作的时延。进一步地,该多个线程为网络处理器NP中的线程,该时间间隔为该NP的系统时钟周期。在这里,每个线程之间发起读改写操作的时间间隔可以为1个系统周期,可以是2个系统时钟周期,或者其他,任何两个之间的时间间隔可以相等也可以不等,甚至该时间间隔可以大于前一线程完成读改写操作的时延。通过控制线程迸发时延,以及采用同地址的各种信息判断数据的相关性,进而可以降低访问时延,从而提高了处理性能。在一种可能的实现方式中,该处理器根据该指示信息,确定该第一线程的待修改数据,包括:若该指示信息的内容为第一值,该处理器确定在该第一线程之前有该第二线程对该第一地址进行读改写操作;该处理器将缓存在缓冲器中的数据确定为该第一线程的待修改数据,该缓存在该缓冲器中的数据为该第二线程的回写数据。在一种可能的实现方式中,该处理器根据该指示信息,确定该第一线程的待修改数据,包括:若该指示信息的内容为第二值,该处理器确定该第一线程为该多个线程中的第一个线程;该处理器将通过该第一线程从该第一地址读取的数据确定为该第一线程的待修改数据。可选地,该处理器可以等前一个线程处理完成之后再执行第二个线程,这样的话可以保证数据的准确性。该处理器还可以直接都读取第一地址中的数据,在读取之后再根据与第一地址相关的信息获取与第一地址对应的指示信息,进而判断读取到的数据是否是最新的数据,例如可以直接将第一地址作为伴随信息,也可以是处理器为第一地址申请一个标识,将该标识作为伴随信息。也就是说处理器可以直接根据第一地址获取对应的指示信息,也可以根据该第一地址的标识获取与第一地址对应的指示信息。将标识作为伴随信息,由于标识的比特数小于地址的比特数,可以极大地减少系统开销。在一种可能的实现方式中,该方法还包括:在该处理器生成该第一线程的回写数据之后,该处理器获取与该第一地址对应的计数器的值,该计数器的变化用于记录该多个线程对该第一地址发起读改写操作的情况;该处理器根据该计数器的值是否为初始值,确定在该第一线程之后是否有第三线程对该第一地址进行读改写操作。可以直接采用第一地址作为伴随信息,确定与该第一地址对应的计数器的值,也可以采用上述第一地址的标识作为伴随信息,确定与该第一地址对应的计数器的值。在一种可能的实现方式中,该处理器根据该计数器的值是否为初始值,确定在该第一线程之后是否有第三线程对该第一地址进行读改写操作,包括:在该计数器的值不为初始值时,该处理器确定在该第一线程之后有该第三线程对该第一地址进行读改写操作;该方法还包括:该处理器将该第一线程的回写数据缓存到缓冲器中,以作为该第三线程的待修改数据。可选地,该计数器的初始值默认为0。例如,处理器在发起一个线程,计数器就加1,处理完一个线程,计数器就减1。通常情况下,连续发起多个线程的第一线程与最后一个线程之间的时间间隔小于一个线程完成读改写操作的时延。可选地,若根据计数器的值判断出来该第一线程为最后一个线程,可以不用将该回写数据写入缓冲器中。可选地,无论第一线程是否是最后一个线程,都需要将回写数据写入RAM的第一地址中。在一种可能的实现方式中,该方法还包括:在该计数器的值为初始值时,该处理器将该指示信息的内容设置为第二值;在该计数器的值不为初始值时,该处理器将该指示信息的内容设置为第一值。在一种可能的实现方式中,该方法还包括:该处理器确定与该第一地址对应的标识信息,该标识信息的比特数小于该第一地址的比特数,该标识信息作为该处理器通过该第一线程从该第一地址读取的数据的伴随信息;该处理器在通过该第一线程从该第一地址读取数据之后,确定与该第一地址对应的指示信息,包括:该处理器根据该标识信息,确定与该第一地址对应的指示信息。可选地,该第一地址、标识信息以及指示信息这三者一一对应,处理器可以给第一地址分配一个标识,将该标识伴随从第一地址读取数据一直到读回数据。可选地,处理器将多个线程从第一地址读回的数据存入队列中,控制在一个线程的修改时延内只出一个线程读回的数据。第二方面,提供了一种用于访问随机存取存储器RAM的装置,用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。具体地,该装置包括用于执行上述第一方面或第一方面的任意可能的实现方式中的方法的单元。第三方面,提供了一种用于访问随机存取存储器RAM的装置,该系统包括:存储器、处理器、输入接口和输出接口。其中,存储器、处理器、输入接口和输出接口通过总线系统相连。该存储器用于存储指令,该处理器用于执行该存储器存储的指令,用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。第四方面,提供了一种计算机存储介质,用于储存为执行上述第一方面或第一方面的任意可能的实现方式中的方法所用的计算机软件指令,其包含用于执行上述方面所设计的程序。第五方面,提供了一种用于访问随机存取存储器RAM的系统,该系统包括第二方面所提供的装本文档来自技高网...
用于访问随机存取存储器RAM的方法、装置和系统

【技术保护点】
一种用于访问随机存取存储器RAM的方法,其特征在于,包括:处理器通过第一线程读取RAM的第一地址的数据,所述第一线程为连续访问所述第一地址的多个线程中的任一线程;所述处理器在通过所述第一线程从所述第一地址读取数据之后,确定与所述第一地址对应的指示信息,所述指示信息用于指示在所述第一线程之前是否有第二线程对所述第一地址进行读改写操作;所述处理器根据所述指示信息,确定所述第一线程的待修改数据;所述处理器对所述第一线程的待修改数据进行修改,生成所述第一线程的回写数据。

【技术特征摘要】
1.一种用于访问随机存取存储器RAM的方法,其特征在于,包括:处理器通过第一线程读取RAM的第一地址的数据,所述第一线程为连续访问所述第一地址的多个线程中的任一线程;所述处理器在通过所述第一线程从所述第一地址读取数据之后,确定与所述第一地址对应的指示信息,所述指示信息用于指示在所述第一线程之前是否有第二线程对所述第一地址进行读改写操作;所述处理器根据所述指示信息,确定所述第一线程的待修改数据;所述处理器对所述第一线程的待修改数据进行修改,生成所述第一线程的回写数据。2.根据权利要求1所述的方法,其特征在于,所述处理器根据所述指示信息,确定所述第一线程的待修改数据,包括:若所述指示信息的内容为第一值,所述处理器确定在所述第一线程之前有所述第二线程对所述第一地址进行读改写操作;所述处理器将缓存在缓冲器中的数据确定为所述第一线程的待修改数据,所述缓存在所述缓冲器中的数据为所述第二线程的回写数据。3.根据权利要求1所述的方法,其特征在于,所述处理器根据所述指示信息,确定所述第一线程的待修改数据,包括:若所述指示信息的内容为第二值,所述处理器确定所述第一线程为所述多个线程中的第一个线程;所述处理器将通过所述第一线程从所述第一地址读取的数据确定为所述第一线程的待修改数据。4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:在所述处理器生成所述第一线程的回写数据之后,所述处理器获取与所述第一地址对应的计数器的值,所述计数器的变化用于记录所述多个线程对所述第一地址发起读改写操作的情况;所述处理器根据所述计数器的值是否为初始值,确定在所述第一线程之后是否有第三线程对所述第一地址进行读改写操作。5.根据权利要求4所述的方法,其特征在于,所述处理器根据所述计数器的值是否为初始值,确定在所述第一线程之后是否有第三线程对所述第一地址进行读改写操作,包括:在所述计数器的值不为初始值时,所述处理器确定在所述第一线程之后有所述第三线程对所述第一地址进行读改写操作;所述方法还包括:所述处理器将所述第一线程的回写数据缓存到缓冲器中,以作为所述第三线程的待修改数据。6.根据权利要求4或5所述的方法,其特征在于,所述方法还包括:在所述计数器的值为初始值时,所述处理器将所述指示信息的内容设置为第二值;或在所述计数器的值不为初始值时,所述处理器将所述指示信息的内容设置为第一值。7.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:所述处理器确定与所述第一地址对应的标识信息,所述标识信息的比特数小于所述第一地址的比特数,所述标识信息作为所述处理器通过所述第一线程从所述第一地址读取的数据的伴随信息;所述处理器在通过所述第一线程从所述第一地址读取数据之后,确定与所述第一地址对应的指示信息,包括:所述处理器在通过所述第一线程从所述第一地址读取数据之后,根据所述标识信息,确定与所述第一地址对应的指示信息。8.根据权利要求1至7中任一项所述的方法,其特征在于,所述多个线程中的任意连续的两个线程发起读改写操作的时间间隔都小于所述任意连续的两个线程中的前一个线程完成读改写操作的时延。9.根据...

【专利技术属性】
技术研发人员:曾宇森
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1