一种基于汉明码存取数据的方法及集成随机存取存储器的制造方法_3

文档序号:9305413阅读:来源:国知局
]步骤301:对接收到的读写指令进行解析,获取所述读写指令的读写状态;
[0052]这里,IRAM接收到读写指令时,对接收到的读写指令进行解析,接收到的读写指令可为写命令,也可为读命令,当收到的读写指令为写命令时,读写指令的读写状态为写状态,向IRAM中写入数据;当收到的读写指令为读命令时,读写指令的读写状态为读状态,从IRAM中读取数据。
[0053]IRAM根据接收到读写指令的读写状态不同执行的操作不同,具体的,当读写指令的读写状态为写状态时,执行步骤302a ;当读写指令的读写状态为读状态时,执行步骤302b ο
[0054]步骤302a,同步骤102,将所述读写指令携带的待存数据进行ECC编码生成对应的校验码,并将所述待存数据与所述第一校验码进行存储;
[0055]步骤302b,同步骤202,根据所述读写指令获取待取数据,采用ECC编码对待取数据进行检测,根据所述检测结果将所述待取数据直接发送、或将所述待取数据进行纠错后发送、或触发告警。
[0056]IRAM在步骤101、步骤201以及步骤301中获取读写指令的读写状态之后,可根据读写状态缓存所述读写指令;其中,以先入先出的方式缓存读写指令;这里,将读写状态先进行缓存,在IRAM接收到读取指令与处理读写指令之间留一定的缓冲时间,用于IRAM处理读写指令,进行待存数据和待取数据的编码、校验等占用时钟周期的处理,避免了因接收读写指令的速度过快而导致部分读写指令丢失的问题。
[0057]当IRAM接收到读写指令时,会自动生成表示开始处理读写指令的数据传输开始信息,以表明IRAM当前正在处理读写指令,当IRAM将带存数据存储后、或将待取数据发出、或触发告警后,生成与数据传输开始信息进行握手的数据传输结束信息,表明当前IRAM对当前的读写指令已处理结束,可以开始新的读写指令的处理。
[0058]在本发明实施例中,在读取指令状态为写状态时,待存数据经过ECC编码后生成的校验码为第一校验码;当读写状态为读状态的读写指令读取该待存数据时,此时的待存数据由于已存储在IRAM中,处于被读取的状态,相应的,此时的待存数据为待取数据。
[0059]在实际应用中,读写命令的读写状态由wen与cen共同确定,在cen无效的情况下,IRAM不具备读写能力;在cen有效的情况下,根据wen的电平值确定当前的读写状态,其中,高电平为读操作,低电平为写操作。
[0060]为实现上述方法,本发明实施例提供一种IRAM400,该IRAM400包括:第一控制模块401、第一 ECC模块402以及第一存储模块403 ;其中,
[0061]第一控制模块401,用于对接收到的读写指令进行解析,获取所述读写指令的读写状态。
[0062]第一控制模块401,还用于将所述读写指令进行格式转换。
[0063]第一 ECC模块402,用于确定所述读写状态为写状态时,将所述读写指令携带的待存数据进行ECC编码生成对应的校验码;
[0064]第一 ECC模块402包括:第一判断子模块421、第一编码子模块422 ;其中,第一判断子模块421,用于判断所述待存数据是否存在无效数据,在所述待存数据存在无效数据的情况下,获取所述读写指令携带的操作地址对应的存储数据,根据所述存储数据生成有效的待存数据;第一编码子模块422,用于将所述待存数据进行ECC编码以生成第一校验码。
[0065]第一存储模块403,用于存储待存数据和第一校验码。
[0066]本发明实施例还提供一种基于汉明码读取数据的IRAM500,该IRAM500包括:第二控制模块501、第二 ECC模块502以及第二存储模块503 ;
[0067]第二控制模块501,用于对接收到的读写指令进行解析,获取所述读写指令的读写状态。
[0068]第二控制模块501,还用于将所述读写指令进行格式转换。
[0069]第二 ECC模块502,用于确定所述读写状态为读状态时,根据所述读写指令获取待取数据,采用ECC编码对所述待取数据进行检测,根据所述检测结果将所述待取数据直接发送、或将所述待取数据进行纠错后发送、或触发告警;
[0070]第二 ECC模块502包括:第二编码子模块521、校验子模块522 ;
[0071]第二编码子模块521,用于根据所述读写指令获取所述待取数据和所述待取数据对应的第一校验码,并将所述待取数据进行ECC编码以生成第二校验码;
[0072]校验子模块522,用于将所述第一校验码与所述第二校验码进行异或操作生成异或结果,根据所述异或结果将所述待取数据直接发送、或将所述待取数据进行纠错后发送、或触发告警。
[0073]校验子模块522,具体用于情况一:当所述异或的结果为全O或存在单比特的1,则将所述待取数据直接发送;情况二:当所述异或的结果中O与I的个数相同,则将所述待取数据进行纠错后发送;若非所述情况一和所述情况二,则触发告警。
[0074]第二存储模块503,用于存储所述待取数据和所述待取数据对应的第一校验码。
[0075]在实际应用中,第二 ECC模块还包括纠错子模块523,用于对校验子模块522发送的需要纠错的待取数据进行纠错,并将纠错后的待取数据发送出去。
[0076]本发明实施例还提供一种基于汉明码存取数据的IRAM600,如图6所示,所述IRAM600包括:控制模块601、ECC模块602以及存储模块603 ;
[0077]控制模块601,用于对接收到的读写指令进行解析,获取所述读写指令的读写状
O
[0078]控制模块601,还用于将所述读写指令进行格式转换。
[0079]ECC模块602,用于当所述读写状态为写状态时,将所述读写指令携带的待存数据进行ECC编码生成对应的第一校验码;当所述读写状态为读状态时,根据所述读写指令获取待取数据,采用ECC编码对所述待取数据进行检测,根据所述检测结果将所述待取数据直接发送、或将所述待取数据进行纠错后发送、或触发告警;其中,对于同样的数据,在写状态时称为待写数据,在读状态时称为待取数据。
[0080]ECC模块602包括:编码子模块621、校验子模块622 ;
[0081]编码子模块621,用于当所述读写状态为写状态时,将所述读写指令携带的待存数据进行ECC编码生成对应的第一校验码;当所述读写状态为读状态时,根据所述读写指令获取待取数据及其对应的第一校验码,并将待取数据进行ECC编码生成第二校验码;
[0082]校验子模块622,用于将待取数据对应的第一校验码与第二校验码进行异或操作生成异或结果,根据异或结果将待取数据直接发送、或将所述待取数据进行纠错后发送、或触发告警。
[0083]这里,校验子模块622,具体用于情况一:当所述异或的结果为全O或存在单比特的I,则将所述待取数据直接发送;情况二:当所述异或的结果中O与I的个数相同,将所述待取数据进行纠错后发送;若非上情况一和情况二,则触发告警。
[0084]存储模块603,用于存储待取数据和待取数据对应的第一校验码。
[0085]如图6所示,ECC模块602还包括判断子模块62
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1