CN103049408A - 一种多接口sram读写控制电路及方法 - Google Patents
一种多接口sram读写控制电路及方法 Download PDFInfo
- Publication number
- CN103049408A CN103049408A CN2012105817679A CN201210581767A CN103049408A CN 103049408 A CN103049408 A CN 103049408A CN 2012105817679 A CN2012105817679 A CN 2012105817679A CN 201210581767 A CN201210581767 A CN 201210581767A CN 103049408 A CN103049408 A CN 103049408A
- Authority
- CN
- China
- Prior art keywords
- sram
- signal
- module interface
- priority
- interface
- 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
Images
Landscapes
- Static Random-Access Memory (AREA)
- Bus Control (AREA)
Abstract
一种多接口SRAM读写控制电路及方法,所述控制电路包括接口信号转换模块和带优先级的多路选择及反馈模块,通过简单的硬件电路,判断系统中访问SRAM的各模块接口的优先级,以协调各模块接口交替连续访问SRAM。本发明既节省了软件开销,又大大提高了SRAM的访问效率,可以广泛应用于嵌入式SOC芯片。
Description
技术领域
本发明涉及静态随机存储器控制领域,尤其涉及一种多接口SRAM读写控制电路及方法。
背景技术
SRAM(Static Random-Access Memory,静态随机存储器)是一种具有静态存取功能的内存,由于不需要刷新电路即能保存其内部存储的数据,SRAM已经成为目前主流的存储器,并在嵌入式SOC芯片(System on Chip, 系统级芯片)中广泛应用。然而,随着集成电路产业的发展,SOC系统内部集成的模块越来越多,这些模块经常需要访问SRAM,当这些模块进行一些并行操作时,由于SRAM同时只能被一个模块访问,所以这些模块必须交替访问SRAM,传统的方法是通过软件协调的方式让它们进行交替访问,这种方法既耗费大量软件资源,又无法实现模块交替时连续访问SRAM,使得SRAM存在等待访问的空闲时间,大大影响了SRAM的访问效率。
发明内容
本发明提供一种多接口SRAM读写控制电路及方法,其目的在于使用硬件方式协调各模块对SRAM的交替访问,从而提高SRAM的访问效率。
为达到上述目的,本发明采用的技术方案是:一种多接口SRAM读写控制电路,在SRAM所在系统中,针对需要访问SRAM的多个模块接口,所述读写控制电路设置有多个接口,该多个接口与多个模块接口一一对应,所述读写控制电路包括接口信号转换模块和带优先级的多路选择及反馈模块,其中:
所述接口信号转换模块实现各模块接口与SRAM接口之间信号的双向匹配,即将各模块接口提供的访问信号转换为符合SRAM要求的输入信号,并且把从SRAM读取的输出信号转换为符合各模块接口时序要求的接收信号;所述接口信号转换模块包括以下逻辑电路:
(1)片选信号转换逻辑,用于将各模块接口提供的访问信号转换为符合SRAM要求的片选信号;
(2)读写信号转换逻辑,用于将各模块接口提供的读写信号转换为符合SRAM要求的读写信号;
(3)地址信号转换逻辑,用于将各模块接口提供的地址信号转换为符合SRAM空间大小和时序要求的地址信号;
(4)输入数据信号转换逻辑,用于将各模块接口提供的输入数据信号转换为符合SRAM时序要求的输入数据信号;
(5)输出数据信号转换逻辑,用于将SRAM提供的输出数据信号转换为符合各模块接口时序要求的接收数据信号;
所述带优先级的多路选择及反馈模块包括选择单元和反馈单元,所述选择单元负责判断各模块接口的优先级,并从访问SRAM的多个模块接口中选择优先级最高的一个模块接口对SRAM进行访问,同时所述反馈单元根据选择单元的最终选择结果向各模块接口发出反馈信号;其中:
所述选择单元主要由一组多路选择器组成,每个多路选择器负责一种输入信号的选择,每个多路选择器的输入为所有模块接口提供的经过相应接口信号转换逻辑转换后的一种输入信号,每个多路选择器的输出与SRAM输入信号一一对应,且所有多路选择器共用一个使能控制逻辑,该使能控制逻辑为各模块接口片选信号的逻辑运算电路,使能控制逻辑为各多路选择器提供选择使能信号;
所述反馈单元由逻辑与门和逻辑或门组成,优先级最高的模块接口接收到的反馈信号始终为0,表示优先级最高的模块接口始终不会接收到SRAM忙的反馈信号;其余优先级较低的各模块接口接收到的反馈信号由所有优先级高于该模块接口的模块接口片选信号先进行逻辑或,再把逻辑或的结果和该模块接口片选信号进行逻辑与产生。
一种多接口SRAM读写控制方法,多个所述模块接口同时访问SRAM时,每个模块接口所对应的接口信号转换模块将该模块接口提供的访问信号转换为符合SRAM时序要求和存储空间要求的输入信号,并将该输入信号输入至所述带优先级的多路选择及反馈模块中的选择单元,选择单元通过判断各模块接口的优先级,从中选择出优先级最高的模块接口对SRAM进行访问;
在多个模块接口同时访问SRAM的过程中,当优先级最高的模块接口对SRAM发起访问请求时,所述选择单元的输出为优先级最高的模块接口提供的对SRAM的输入信号,该输入信号为经过所述接口信号转换模块转换后的输入信号;当优先级最高的模块接口未对SRAM发起访问请求时,所述选择单元判断优先级次高的模块接口是否对SRAM发起访问请求,若优先级次高的模块接口对SRAM发起访问请求,则所述选择单元输出为优先级次高的模块接口提供的对SRAM的输入信号,该输入信号为经过所述接口信号转换模块转换后的输入信号;以此类推,直至优先级最低的模块接口对SRAM提出访问请求,所述选择单元选择优先级最低的模块接口提供的对SRAM的输入信号作为输出;若所有模块接口均未对SRAM提出访问请求,则所述选择单元输出默认值0或1;
所述选择单元的选择结果通过反馈单元向各模块接口发出反馈信号,各模块接口根据接收到的反馈信号调整各自状态,选择是否继续等待访问SRAM或者转向进行其他操作。
上述技术方案中的有关内容解释如下:
1. 上述方案中,所述“多接口”指的是SOC芯片中各模块访问SRAM的接口,SOC芯片中包括多个需要访问SRAM的模块,比如:CPU、USB控制器、SD控制器、DMA控制器、BCH和加解密控制器等。
上述各模块中,CPU通过总线访问SRAM存储一些变量信息以及进行中断处理实现压栈出栈操作;不占总线的DMA控制器在SRAM和其他模块之间搬运大批量数据时,需要长时间访问SRAM;USB控制器和SD控制器通过USB或SD接口接收到的数据需要存储到SRAM或者需要从SRAM读取数据传送出去时,需要无等待访问SRAM;BCH通过纠错机制发现从芯片外部存储到SRAM的数据有错时需要先从SRAM中读取错误数据进行纠错后再写回对应地址的SRAM单元;加解密控制器通常需要从SRAM中读取原始数据经过加解密后再把加解密后的数据存入SRAM。
2. 上述方案中,所述SRAM的输入信号通常至少包括片选信号、地址信号、读写信号、输入数据信号和时钟信号,SRAM的输出信号通常至少包括输出数据信号,其中,时钟信号可以直接从系统时钟接入。
3. 上述方案中,所述接口信号转换模块包括片选信号转换逻辑、读写信号转换逻辑、地址信号转换逻辑、输入数据信号转换逻辑以及输出数据信号转换逻辑。由于各模块接口访问SRAM时,提供的片选信号、读写控制信号、访问地址信号以及访问数据信号在极性、数据宽度以及时序上与所访问的SRAM可能不一致,因此,需要根据所选择的SRAM的时序要求和存储空间大小,对各模块接口访问信号进行转换处理,同时,当各模块接口访问SRAM读取输出数据信号时,也需要根据各接口模块的要求把从SRAM读取到的输出信号转换为符合各模块接口时序要求的接收信号,其中:
所述片选信号转换逻辑根据各模块接口提供的访问信号,采用不同的硬件逻辑把访问信号转换为符合SRAM要求的片选信号。例如:当系统总线上的CPU访问SRAM时,没有直接提供对SRAM的片选信号,而只提供了总线上的访问请求信号和访问地址信号,需要先通过译码器对总线上发起的地址信号的高地址位进行译码,然后将译码结果与访问请求信号进行逻辑与,从而生成CPU对SRAM的片选信号。
还有一些模块接口提供的片选信号极性与SRAM片选信号极性相反,例如:USB控制器提供的片选信号是低有效,而SRAM要求的片选信号是高有效,这时需要在片选信号转换逻辑中提供一个反相器,把USB控制器提供的片选信号转换为符合SRAM要求的片选信号。
所述读写信号转换逻辑主要负责把各模块接口提供的读写信号,转换为符合SRAM要求的读写信号。例如以下两种情况的转换:一种是模块接口提供的读写信号是两个信号,例如读写信号分开,而SRAM可能只有一个读写信号,例如高表示写,低表示读。这样只要把模块接口提供的读信号经过反相器反向,再与写信号经过与门操作就可以了。另一种是模块接口提供的读写信号是一个信号,例如高表示写,低表示读,而SRAM要求读写信号分为两个信号,这样只要把模块接口提供的读写信号直接提供给SRAM作为写信号,同时把模块接口提供的读写信号经过反相器取反之后提供给SRAM读信号就可以了。(这个实现相当简单,一般工程师都可以实现也可以不用说明)。
所述地址信号转换逻辑根据各模块接口提供的地址信号,转换为符合SRAM空间大小和时序要求的地址信号。例如:当系统总线上的CPU访问SRAM时,如SRAM要求的地址空间为0x000~0xfff,而CPU提供的总线访问地址信号为32位地址信号0x00802000~0x00802fff,其中高地址0x00802经过译码后产生上述的CPU对SRAM的 片选信号,而低地址0x000~0xfff提供给SRAM作为CPU对SRAM的访问地址信号。另外,根据SRAM存储空间的大小,还需要对地址进行对齐转换操作,总线上CPU提供的地址是以字节(8比特)为单位的,而有些SRAM是以半字(16比特)或字(32比特)为单位。这样就需要把CPU提供的地址进行对齐转换,即对于以半字为单位的SRAM,需要对CPU的访问地址进行逻辑右移一位操作后提供给SRAM作为CPU对SRAM的访问地址信号,而对于以字为单位的SRAM,需要把CPU的访问地址逻辑右移两位后提供给SRAM作为CPU对SRAM的访问地址信号,以字节为单位的可以不进行转换。
所述输入数据信号转换逻辑和输出数据信号转换逻辑主要是负责匹配各模块接口与SRAM时序要求,例如:有些模块接口访问SRAM时输入数据信号与输入地址信号同时有效,而SRAM要求先接收输入地址信号,再接收输入数据信号,这时需要使用寄存器对输入数据信号进行寄存,然后再送入SRAM。同样的,当从SRAM读取数据时,一些SRAM在接收到访问地址的同一个时钟周期内,就可以给出输出数据信号,而有些接口模块读取数据信号比访问地址信号晚一个时钟周期,这时需要使用寄存器对输出数据信号进行寄存,然后送给各模块接口。
由于各种模块接口的接口信号不同,所以各模块接口信号转换模块电路也不同,本领域技术人员可以根据不同SRAM和不同模块接口信号选择。
4. 上述方案中,所述选择单元包括片选信号控制逻辑、读写信号多路选择器、地址信号多路选择器、输入数据信号多路选择器以及输出数据信号控制逻辑,其中:
所述片选信号控制逻辑用来产生SRAM的片选信号,当多个模块接口同时访问SRAM时,将所有模块接口对SRAM的片选信号经过逻辑或,产生一个单一的SRAM片选信号,上述模块接口片选信号是经过上述片选信号转换逻辑转换的符合SRAM要求的片选信号,因此,任一模块接口发出访问请求信号时,都会对SRAM产生片选信号。
所述读写信号多路选择器、地址信号多路选择器和输入数据信号多路选择器都是根据各模块接口已确定的优先级来选择相应的模块接口对SRAM进行访问,当多个具有不同优先级的模块接口同时对SRAM发起访问请求时,上述各多路选择器选择其中优先级最高的模块接口对SRAM进行访问;当优先级最高的模块接口对SRAM发起访问请求时,各多路选择器的输出为优先级最高的模块接口对SRAM的输入信号;当优先级最高的模块接口未对SRAM发起访问请求时,所述选择单元判断次高优先级的模块接口是否对SRAM发起访问请求,若次高优先级的模块接口对SRAM发起访问请求,则各多路选择器的输出为次高优先级的模块接口对SRAM的输入信号;以此类推,直至最低优先级的模块接口对SRAM发起访问请求,各多路选择器选择最低优先级的模块接口对SRAM的输入信号作为输出;若所有的模块接口均未对SRAM发起访问请求,则各多路选择器输出默认值0或1。
所述输出数据信号控制逻辑负责把从SRAM读取到的数据写入各模块接口,输出数据信号控制逻辑的电路结构就是一些开关逻辑,当该输出数据信号控制逻辑对应的模块接口有权限访问SRAM时,该模块接口直接获取从SRAM读取的并经过接口信号转换模块转换的数据;当该输出数据信号控制逻辑对应的模块接口无权限访问SRAM时,SRAM将默认值通过输出数据信号控制逻辑传到模块接口的数据接收端。
5. 上述方案中,所述反馈单元根据选择单元最终的选择结果,向各模块接口发出信号,以告知各模块接口目前是否有权限访问SRAM,各模块接口根据接收到的信号调整各自的状态,选择是继续保持等待还是进行其他操作。
反馈单元由多个与或门组成,其实现原理是:当多个模块接口同时访问SRAM时,反馈单元向低优先级的模块接口发出SRAM忙的信号,收到SRAM忙信号的模块接口目前无法对SRAM进行任何操作,该接口可以选择继续等待或执行其他无需访问SRAM的操作,而未接收到SRAM忙信号的模块接口则可以立即访问SRAM。所述反馈单元的具体电路可通过以下方式实现:
优先级最高的模块接口始终不会接收到SRAM忙的反馈信号,而其余模块接口接收到的反馈信号由所有优先级高于该模块接口的片选信号先进行逻辑或,再把逻辑或的结果与该模块接口片选信号进行逻辑与产生。例如:优先级次高的模块接口接收到的反馈信号由优先级次高的模块接口片选信号与优先级最高的模块接口片选信号的逻辑与生成,即当优先级次高的模块接口要访问SRAM,而此时优先级最高的模块接口也要访问SRAM,那么,优先级次高的模块接收到的反馈信号为SRAM 忙;当优先级次高的模块接口要访问SRAM而优先级最高的模块接口不访问SRAM,或者优先级次高的模块接口不访问SRAM而优先级最高的模块接口访问SRAM,或者优先级次高的模块接口和优先级最高的模块接口都不访问SRAM,即两者中至少有一者不对SRAM发起访问时,优先级次高的模块接口就不会接收到的SRAM 忙的反馈信号。以此类推,优先级最低的模块接口接收到的反馈信号由所有优先级比它高的模块接口片选信号经过逻辑或之后,再与优先级最低的模块接口片选信号经过逻辑与生成,即当优先级最低的模块接口要访问SRAM,而此时存在优先级比它高的模块接口也要访问SRAM,那么,优先级最低的模块接口就接收到SRAM 忙的反馈信号;当优先级最低的模块接口要访问SRAM,而此时所有优先级比它高的模块接口都不访问SRAM,或者优先级最低的模块接口不访问SRAM,而此时存在其它模块接口访问SRAM,或者所有模块接口都不访问SRAM,即优先级最低的模块接口和优先级比它高的所有模块接口中至少有一者不访问SRAM时,优先级最低的模块接口不会接收到SRAM 忙的反馈信号。
本发明工作原理和效果:在SOC系统中,当多个模块执行并行操作,需要频繁交替访问SRAM时,运用简单的硬件电路,通过判断系统中访问SRAM的各模块接口的优先级,选择优先级最高的模块接口对SRAM进行访问,实现了模块接口对SRAM的交替连续访问,既节省了软件开销,又大大提高了SRAM的访问效率。
附图说明
附图1为应用本发明内容的嵌入式SOC芯片结构示意图;
附图2为本发明结构示意图;
附图3为本发明实施例一访问示意图;
附图4为本发明实施例二访问示意图;
附图5为本发明实施例三中从USB端口接收数据经过加密存储到NANDFLASH的操作示意图;
附图6为本发明实施例三中从NANDFLASH读取数据进行数据纠错再解密发送到USB端口的操作示意图;
附图7为本发明实施例三对应于附图5的选择单元结构示意图;
附图8~附图11为本发明实施例三附图5中各模块接口的反馈单元结构示意图;
附图12为本发明实施例三对应于附图5的片选信号控制逻辑示意图。
具体实施方式
下面结合附图及实施例对本发明作进一步描述:
实施例一:一种多接口SRAM读写控制电路及方法
附图3为具有单片SRAM的读写控制电路访问示意图。参见附图1附图2和附图3所示,在SRAM所在系统中,针对需要访问SRAM的多个模块接口,所述读写控制电路设置有多个接口,该多个接口与多个模块接口一一对应,所述读写控制电路包括接口信号转换模块和带优先级的多路选择及反馈模块,其中:
所述接口信号转换模块实现各模块接口与SRAM接口之间信号的双向匹配,即将各模块接口提供的访问信号转换为符合SRAM要求的输入信号,并且把从SRAM读取的输出信号转换为符合各模块接口时序要求的接收信号;所述接口信号转换模块包括以下逻辑电路:
(1)片选信号转换逻辑,用于将各模块接口提供的访问信号转换为符合SRAM要求的片选信号;
(2)读写信号转换逻辑,用于将各模块接口提供的读写信号转换为符合SRAM要求的读写信号;
(3)地址信号转换逻辑,用于将各模块接口提供的地址信号转换为符合SRAM空间大小和时序要求的地址信号;
(4)输入数据信号转换逻辑,用于将各模块接口提供的输入数据信号转换为符合SRAM时序要求的输入数据信号;
(5)输出数据信号转换逻辑,用于将SRAM提供的输出数据信号转换为符合各模块接口时序要求的接收数据信号;
所述带优先级的多路选择及反馈模块包括选择单元和反馈单元,所述选择单元负责判断各模块接口的优先级,并从访问SRAM的多个模块接口中选择优先级最高的一个模块接口对SRAM进行访问,同时所述反馈单元根据选择单元的最终选择结果向各模块接口发出反馈信号;其中:
所述选择单元主要由一组多路选择器组成,每个多路选择器负责一种输入信号的选择,每个多路选择器的输入为所有模块接口提供的经过相应接口信号转换逻辑转换后的一种输入信号,每个多路选择器的输出与SRAM输入信号一一对应,且所有多路选择器共用一个使能控制逻辑,该使能控制逻辑为各模块接口片选信号的逻辑运算电路,使能控制逻辑为各多路选择器提供选择使能信号;
所述反馈单元由逻辑与门和逻辑或门组成,优先级最高的模块接口接收到的反馈信号始终为0,表示优先级最高的模块接口始终不会接收到SRAM忙的反馈信号;其余优先级较低的各模块接口接收到的反馈信号由所有优先级高于该模块接口的模块接口片选信号先进行逻辑或,再把逻辑或的结果和该模块接口片选信号进行逻辑与产生。
参见附图3所示,在多个模块接口同时访问SRAM的过程中,当优先级为1的模块接口对SRAM发起访问请求时,所述选择单元的输出为优先级为1的模块接口提供的对SRAM的输入信号,并将其选择的结果通过所述反馈单元反馈给各模块接口;当优先级为1的模块接口未对SRAM发起访问请求时,判断优先级为2的模块接口是否对SRAM发起访问请求,若优先级为2的模块接口对SRAM发起访问请求,则所述选择单元的输出为优先级为2的模块接口提供的对SRAM的输入信号;以此类推,直至优先级为1、2、3的模块接口均未对SRAM发起访问请求,若判断优先级为4的模块接口对SRAM发起访问请求,则所述选择单元的输出为优先级为4的模块接口提供的对SRAM的输入信号;若所有的接口均未对SRAM发起访问请求,则所述选择单元的输出为默认值0或1。
所述读写控制电路通过输出数据信号控制逻辑将从SRAM读取的输出数据写入各模块接口,如附图3所示,从SRAM读取到的数据经由一组输出数据信号控制逻辑输出至各模块接口,当相应的模块接口有权限访问SRAM时,数据从SRAM输出数据端经由相应的输出数据信号控制逻辑写入该模块接口;当相应模块接口无权限访问SRAM时,把默认值送到模块接口的数据接收端。
实施例二:一种多接口SRAM读写控制电路及方法
附图4为系统中具有多块SRAM的读写控制电路访问示意图。如图所示,优先级为1、2、3和4的模块接口同时访问SRAM,其中优先级为1和优先级为2的模块接口同时访问SRAM1,优先级为3和优先级为4的模块接口同时访问SRAM2,根据各模块接口提供的地址信息,先通过接口信号转换模块中的地址译码逻辑对各模块接口进行分组,然后通过判断各模块接口优先级选择相应模块接口提供的输入信号送入SRAM;优先级为1和优先级为2的模块接口提供的输入信号输入选择单元1,选择单元1选择优先级较高的模块接口对SRAM1进行访问,同时通过反馈单元1向优先级为1和优先级为2的模块接口分别发出反馈信号1和反馈信号2,SRAM1的输出信号1通过输出数据信号逻辑控制单元输出,并经接口信号转换模块转换为符合对应模块接口要求的接收信号;优先级为3和优先级为4的模块接口提供的输入信号输入选择单元2,选择单元2选择优先级较高的模块接口对SRAM2进行访问,同时通过反馈单元2向优先级为3和优先级为4的模块接口分别发出反馈信号3和反馈信号4,SRAM2的输出信号2通过输出数据信号控制逻辑输出,并经接口信号转换模块转换为符合对应模块接口要求的接收信号。由于优先级1高于优先级2,所以优先级为1的模块接口可以立即访问SRAM1,而优先级为2的模块接口会接收到SRAM1忙的反馈信号;由于优先级3高于优先级4,所以优先级为3的模块接口可以立即访问SRAM2,而优先级为4的模块接口会接收到SRAM2忙的反馈信号。
在附图4中,由于优先级为2和优先级为3的模块接口所访问的是不同的SRAM,虽然优先级2高于优先级3,优先级为3的模块接口仍然可以立即访问SRAM2,以执行相应操作,而优先级为2的模块接口却无法立即访问SRAM1。由此可见,当系统中具有多块SRAM时,模块接口访问SRAM的权限不仅由其优先级决定,还由其所访问的SRAM的地址区域决定。
在本实施例中,四个优先级不同的模块接口同时访问两个不同的SRAM,若有数量更多的模块接口同时访问两个以上不同的SRAM,则设置与SRAM数量相同的带优先级的多路选择及反馈模块即可,各模块接口通过接口信号转换模块中的地址译码逻辑进行分组,然后由相应的选择单元选择优先级最高的模块接口对相应的SRAM进行访问。
在实施例一和实施例二中,各模块接口发出的访问信号先由所述接口信号转换模块转换为符合SRAM要求的输入信号,再由所述选择单元进行选择后输入SRAM,而在实际应用中,若所述访问信号先经过选择单元进行选择再由接口信号转换模块转换为符合SRAM要求的输入信号,也可达到相同效果,同样,上述实施例中,输出数据信号控制逻辑设于各模块接口与接口信号转换单元之间,而在实际应用中,若输出数据信号控制逻辑设于SRAM与接口信号转换模块之间,即SRAM的输出信号先通过输出数据信号控制逻辑输出,再经过接口信号转换模块转换为符合各模块接口的接收信号,也可达到相同效果。
实施例三:一种多接口SRAM读写控制电路及方法
附图5和附图6为U盘控制器访问SRAM的操作示意图。
附图5为从USB端口接收数据经过加密存储到NANDFLASH的操作示意图。如附图5所示,从USB端口接收数据经过加密存储到NANDFLASH的具体流程如下:
1、USB控制器把从USB端口接收的数据通过USB控制器接口写入SRAM中,在U盘控制器中,规定USB控制器访问SRAM的优先级最高,设USB控制器的优先级为1。
2、加解密控制器通过加解密控制器读接口从SRAM中读出USB控制器写入的数据,并将该数据送入加解密模块进行数据加密,接着通过加解密控制器写接口将加密后的数据写入SRAM,在U盘控制器中,由于加解密控制器访问SRAM的操作对实时性要求不高,因此设定加解密控制器访问SRAM的优先级为3。
3、DMA控制器通过DMA控制器接口从SRAM中读取加密后的数据,并写入NANDFLASH,在U盘控制器中,部分外界NANDFLASH对数据实时性要求较高,因此,DMA控制器访问SRAM的优先级设为2。
4、CPU通过系统总线访问SRAM,CPU从SRAM中读取程序中的一些变量信息,同时写入一些变量信息,当CPU处理中断时,会向SRAM中写入一些信息保护现场,进行压栈操作;当退出中断时,执行出栈操作,从SRAM中读取信息恢复现场。CPU的操作是穿插于上述1~3流程中的,而且多数情况是间歇性地访问SRAM,因此,在U盘控制器中,设定CPU访问SRAM的优先级为最低优先级4,同时考虑到CPU间歇性访问SRAM的特性,当CPU连续几次访问SRAM不成功时,可以临时提升其优先级,使其优先级高于优先级3,而始终低于优先级1和2。
上述流程1~4单独描述了数据流经过各模块操作串行执行的情况,实际U盘控制器在处理大批量数据时,1~4是并行发生的,即当USB控制器接收到第三个数据块发起对SRAM的写操作时,加解密控制器正从SRAM读取第二个数据块进行加密后写入SRAM,同时,DMA控制器正从SRAM中读取第一个数据块写入NANDFLASH,CPU也会不时地发起对SRAM的访问。当各模块接口同时访问SRAM时,所述控制电路会判断系统规定的优先级允许各模块接口顺序访问SRAM,先允许USB控制器的访问请求,一旦USB控制器访问完成,立即切换到DMA控制器访问SRAM,DMA控制器访问完成后,判断CPU如果连续访问未成功,并且达到设定的访问失败次数时,则先执行CPU对SRAM的访问,否则,先执行加解密模块对SRAM的读写操作,各模块接口交替连续执行对SRAM的访问,以此提高SRAM的访问效率。
附图7为对应于附图5的选择单元结构示意图,如附图7所示,因为优先级1为最高优先级,所以优先级为1的USB控制器输入各多路选择器使能端的选择使能信号即为USB控制器的片选信号,USB控制器一旦提出访问请求则始终能够访问SRAM;优先级为2的DMA控制器的选择使能信号由DMA控制器的片选信号和USB控制器片选信号的非值经过逻辑与生成,即当USB控制器不访问SRAM,而DMA控制器请求访问SRAM时,选择单元才选择DMA控制器访问SRAM;优先级为3的数据加解密控制器的选择使能信号由数据加解密控制器的片选信号和USB控制器片选信号的非值、DMA控制器片选信号的非值经过逻辑与生成,即当USB控制器和DMA控制器都不访问SRAM,而数据加解密控制请求访问SRAM时,选择单元才选择数据加解密控制器访问SRAM,并且,,生成数据加解密控制器选择使能信号的与门输入端还有一被临时提高优先级的原始优先级为4的CPU片选信号的非值,当CPU访问SRAM的失败次数达到一设定数值时,该信号用于告知选择单元将CPU的优先级临时提高为高于数据加解密控制器,使CPU能够访问SRAM,当CPU成功访问SRAM一次时,即将其优先级恢复为初始值;优先级为4的CPU的选择使能信号由CPU片选信号和USB控制器片选信号的非值、DMA控制器片选信号的非值、数据加解密控制器片选信号的非值经过逻辑与生成,即当USB控制器、DMA控制器和数据加解密控制器都不访问SRAM,而CPU请求访问SRAM时,选择单元才会选择CPU访问SRAM;上述各模块接口的选择使能信号输入至各多路选择器的使能端,以控制选择单元的选择结果。
附图8~附图11为附图5中各模块接口对应的反馈单元结构示意图,其中,由于优先级1为最高优先级,优先级为1的USB控制器的反馈信号始终为0,表示始终不对USB控制器发出SRAM忙的反馈信号,USB控制器一旦提出访问请求则立刻能够访问SRAM;优先级为2的DMA控制器的反馈信号由USB控制器片选信号和DMA控制器片选信号经过逻辑与生成,即当DMA控制器发出访问请求而USB控制器未发出访问请求时,DMA控制器不会收到SRAM忙的反馈信号,若DMA控制器发出访问请求的同时USB控制器也发出访问请求,则DMA控制器会收到SRAM忙的反馈信号;优先级为3的数据加解密控制器的反馈信号由USB控制器片选信号和DMA控制器片选信号或的结果再与数据加解密控制器片选信号经过逻辑与生成,即当数据加解密控制器访问SRAM,且USB控制器和DMA控制器均未访问SRAM时,数据加解密控制器不会收到SRAM忙的反馈信号,若数据加解密控制器访问SRAM的同时USB控制器和DMA控制器中有一者访问SRAM,则数据加解密控制器会收到SRAM忙的反馈信号;优先级为4的CPU的反馈信号由数据加解密控制器片选信号、USB控制器片选信号和DMA控制器片选信号或的结果再与CPU片选信号经过逻辑与生成,即当CPU访问SRAM,数据加解密控制器、USB控制器和DMA控制器均未访问SRAM时,CPU不会收到SRAM忙的反馈信号,若CPU访问SRAM的同时数据加解密控制器、USB控制器和DMA控制器中有一者访问SRAM,则CPU收到SRAM忙的反馈信号。
附图12为附图5中各模块接口的片选信号控制逻辑结构示意图,如附图12所示,SRAM的片选信号由CPU片选信号、DMA控制器片选信号、USB控制器片选信号和加解密控制器片选信号经过逻辑或生成,即任一模块接口的片选信号有效,都会产生SRAM的片选信号,仅当所有优先级高于该模块接口的模块接口未对SRAM请求访问时,该模块接口才能访问SRAM。
附图6为本发明实施例三中从NANDFLASH读取数据进行数据纠错再解密发送到USB端口的操作示意图。如附图5所示,从NANDFLASH读取数据进行纠错再经过解密发送到USB端口的操作流程如下:
1、DMA控制器从NANDFLASH读取数据通过DMA控制器接口把数据写入SRAM中,DMA控制器访问SRAM的优先级设为2。
2、BCH对DMA控制器从NANDFLASH读取的数据进行检错和纠错,当发现数据错误在可纠正的范围内时,从SRAM中读取错误数据,纠正之后再写入SRAM相应单元,BCH访问SRAM的优先级设为3。当发现数据错误超出可纠正范围时,通过中断或标志位向系统报告无法纠错,该段数据块不可用予以丢弃。
3、加解密控制器通过加解密控制器读接口从SRAM中取出经过BCH纠正之后的数据,送入加解密模块进行数据解密,然后把解密后的数据通过加解密控制器的写接口把解密数据写入SRAM,设定加解密控制器访问SRAM的优先级为4。
4、USB控制器通过USB控制器接口把解密后的数据从SRAM取出,从USB端口发送出去,USB控制器访问SRAM的优先级设为1。
5、CPU访问SRAM的优先级设为5,同时考虑到CPU间歇性访问SRAM的特性,当CPU连续几次访问SRAM失败时,可以临时提高其优先级使其优先级高于3。
上述步骤1~5在U盘控制器处理大批量数据时实际上是并行的,即当DMAC正从NANDFLASH中读取第四个数据块写入SRAM时,BCH正在对接收到的第三个数据块进行纠错,加密控制器正从SRAM中读取第二个经过纠错的数据块进行解密后写回SRAM,USB控制器正从SRAM中取出第一个数据块发送到外部,同时,CPU也会不时地发起对SRAM的访问。
根据上述操作步骤,U盘控制器可以完成从外部读取数据经过加密存储到NANDFLASH,并且从NANDFLASH读取数据经过纠错和解密再传输到外部的操作。上述操作步骤中各模块接口都需要频繁访问SRAM,当多个模块接口同时对SRAM发起访问请求,通过本发明中的硬件电路,可以实现根据系统规定的访问优先级,协调各接口交替连续访问SRAM,既不需要软件开销,又大大提高了SRAM的访问效率,可广泛应用于嵌入式SOC芯片中。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
Claims (5)
1.一种多接口SRAM读写控制电路,其特征在于:在SRAM所在系统中,针对需要访问SRAM的多个模块接口,所述读写控制电路设置有多个接口,该多个接口与多个模块接口一一对应,所述读写控制电路包括接口信号转换模块和带优先级的多路选择及反馈模块,其中:
所述接口信号转换模块实现各模块接口与SRAM接口之间信号的双向匹配,即将各模块接口提供的访问信号转换为符合SRAM要求的输入信号,并且把从SRAM读取的输出信号转换为符合各模块接口时序要求的接收信号;所述接口信号转换模块包括以下逻辑电路:
(1)片选信号转换逻辑,用于将各模块接口提供的访问信号转换为符合SRAM要求的片选信号;
(2)读写信号转换逻辑,用于将各模块接口提供的读写信号转换为符合SRAM要求的读写信号;
(3)地址信号转换逻辑,用于将各模块接口提供的地址信号转换为符合SRAM空间大小和时序要求的地址信号;
(4)输入数据信号转换逻辑,用于将各模块接口提供的输入数据信号转换为符合SRAM时序要求的输入数据信号;
(5)输出数据信号转换逻辑,用于将SRAM提供的输出数据信号转换为符合各模块接口时序要求的接收数据信号;
所述带优先级的多路选择及反馈模块包括选择单元和反馈单元,所述选择单元负责判断各模块接口的优先级,并从访问SRAM的多个模块接口中选择优先级最高的一个模块接口对SRAM进行访问,同时所述反馈单元根据选择单元的最终选择结果向各模块接口发出反馈信号;其中:
所述选择单元主要由一组多路选择器组成,每个多路选择器负责一种输入信号的选择,每个多路选择器的输入为所有模块接口提供的经过相应接口信号转换逻辑转换后的一种输入信号,每个多路选择器的输出与SRAM输入信号一一对应,且所有多路选择器共用一个使能控制逻辑,该使能控制逻辑为各模块接口片选信号的逻辑运算电路,使能控制逻辑为各多路选择器提供选择使能信号;
所述反馈单元由逻辑与门和逻辑或门组成,优先级最高的模块接口接收到的反馈信号始终为0,表示优先级最高的模块接口始终不会接收到SRAM忙的反馈信号;其余优先级较低的各模块接口接收到的反馈信号由所有优先级高于该模块接口的模块接口片选信号先进行逻辑或,再把逻辑或的结果和该模块接口片选信号进行逻辑与产生。
2.根据权利要求1所述的读写控制电路,其特征在于:所述带优先级的多路选择及反馈模块还包括计数器,计数器用于记录各模块接口访问SRAM的失败次数,当失败次数达到设定数值时向所述选择单元提供临时提高相应模块接口优先级的信号。
3.根据权利要求1所述的读写控制电路,其特征在于:当所述系统中具有多块SRAM时,接口信号转换模块中根据各模块接口提供的地址信号还设置有地址译码逻辑,该地址译码逻辑负责将各模块接口进行分组,以选择不同的SRAM进行访问。
4.一种基于权利要求1所述多接口SRAM读写控制电路的控制方法,其特征在于:所述多个模块接口同时访问SRAM时,接口信号转换模块将每个模块接口提供的访问信号转换为符合SRAM时序要求和存储空间要求的输入信号,并将该输入信号输入至所述带优先级的多路选择及反馈模块中的选择单元,选择单元通过判断各模块接口的优先级,从中选择出优先级最高的模块接口对SRAM进行访问;
在多个模块接口同时访问SRAM的过程中,当优先级最高的模块接口对SRAM发起访问请求时,所述选择单元的输出为优先级最高的模块接口提供的对SRAM的输入信号,该输入信号为经过所述接口信号转换模块转换后的输入信号;当优先级最高的模块接口未对SRAM发起访问请求时,所述选择单元判断优先级次高的模块接口是否对SRAM发起访问请求,若优先级次高的模块接口对SRAM发起访问请求,则所述选择单元输出为优先级次高的模块接口提供的对SRAM的输入信号,该输入信号为经过所述接口信号转换模块转换后的输入信号;以此类推,直至优先级最低的模块接口对SRAM提出访问请求,所述选择单元选择优先级最低的模块接口提供的对SRAM的输入信号作为输出;若所有模块接口均未对SRAM提出访问请求,则所述选择单元输出默认值0或1;
所述反馈单元根据选择单元的选择结果向各模块接口发出反馈信号,各模块接口根据接收到的反馈信号调整各自状态,选择是否继续等待访问SRAM或者转向进行其他操作。
5.根据权利要求4所述的读写控制方法,其特征在于:所述带优先级的多路选择及反馈模块还包括计数器,计数器记录各模块接口访问SRAM的失败次数,当该失败次数达到一设定数值时,临时提高该模块接口的优先级,直至模块接口成功访问一次SRAM后,再将其恢复至初始优先级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210581767.9A CN103049408B (zh) | 2012-12-28 | 2012-12-28 | 一种多接口sram读写控制电路及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210581767.9A CN103049408B (zh) | 2012-12-28 | 2012-12-28 | 一种多接口sram读写控制电路及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103049408A true CN103049408A (zh) | 2013-04-17 |
CN103049408B CN103049408B (zh) | 2015-06-17 |
Family
ID=48062054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210581767.9A Active CN103049408B (zh) | 2012-12-28 | 2012-12-28 | 一种多接口sram读写控制电路及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103049408B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246624A (zh) * | 2013-05-22 | 2013-08-14 | 苏州国芯科技有限公司 | 一种应用于多接口sram带权重的优先级调度方法 |
CN104240398A (zh) * | 2014-09-05 | 2014-12-24 | 浙江中合仪表科技有限公司 | 一种电水气热智能表的自助抄表usb数据交换器 |
CN104765701A (zh) * | 2015-03-24 | 2015-07-08 | 华为技术有限公司 | 数据访问方法及设备 |
CN107851074A (zh) * | 2015-07-21 | 2018-03-27 | 高通股份有限公司 | 多个接口对存储器空间的并发访问 |
CN110347555A (zh) * | 2019-07-09 | 2019-10-18 | 英业达科技有限公司 | 硬盘运作状态判定方法 |
CN116594922A (zh) * | 2023-07-14 | 2023-08-15 | 深圳砺驰半导体科技有限公司 | 一种数据访问电路、方法及系统级芯片 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2743918Y (zh) * | 2004-11-25 | 2005-11-30 | 重庆工学院 | 一种带多种数据传输接口的工业现场多路信号检测装置 |
CN101025898A (zh) * | 2006-02-21 | 2007-08-29 | 天利半导体(深圳)有限公司 | 一种用于lcd驱动电路中双口sram操作冲突的仲裁算法 |
US20120215974A1 (en) * | 2005-09-30 | 2012-08-23 | Mosaid Technologies Incorporated | Memory with output control |
-
2012
- 2012-12-28 CN CN201210581767.9A patent/CN103049408B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2743918Y (zh) * | 2004-11-25 | 2005-11-30 | 重庆工学院 | 一种带多种数据传输接口的工业现场多路信号检测装置 |
US20120215974A1 (en) * | 2005-09-30 | 2012-08-23 | Mosaid Technologies Incorporated | Memory with output control |
CN101025898A (zh) * | 2006-02-21 | 2007-08-29 | 天利半导体(深圳)有限公司 | 一种用于lcd驱动电路中双口sram操作冲突的仲裁算法 |
Non-Patent Citations (2)
Title |
---|
匡启和: "苏州国芯科技微控制器CCM3119的应用实例", 《集成电路应用》, 31 October 2004 (2004-10-31) * |
苏海冰: "用SDRAM在高速数据采集和存储系统中实现海量缓存", 《光学 精密工程》, vol. 10, no. 5, 31 October 2002 (2002-10-31) * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246624A (zh) * | 2013-05-22 | 2013-08-14 | 苏州国芯科技有限公司 | 一种应用于多接口sram带权重的优先级调度方法 |
CN104240398A (zh) * | 2014-09-05 | 2014-12-24 | 浙江中合仪表科技有限公司 | 一种电水气热智能表的自助抄表usb数据交换器 |
CN104765701A (zh) * | 2015-03-24 | 2015-07-08 | 华为技术有限公司 | 数据访问方法及设备 |
CN104765701B (zh) * | 2015-03-24 | 2018-05-29 | 华为技术有限公司 | 数据访问方法及设备 |
CN107851074A (zh) * | 2015-07-21 | 2018-03-27 | 高通股份有限公司 | 多个接口对存储器空间的并发访问 |
CN110347555A (zh) * | 2019-07-09 | 2019-10-18 | 英业达科技有限公司 | 硬盘运作状态判定方法 |
CN110347555B (zh) * | 2019-07-09 | 2021-10-01 | 英业达科技有限公司 | 硬盘运作状态判定方法 |
CN116594922A (zh) * | 2023-07-14 | 2023-08-15 | 深圳砺驰半导体科技有限公司 | 一种数据访问电路、方法及系统级芯片 |
CN116594922B (zh) * | 2023-07-14 | 2023-10-31 | 深圳砺驰半导体科技有限公司 | 一种数据访问电路、方法及系统级芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN103049408B (zh) | 2015-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103049408A (zh) | 一种多接口sram读写控制电路及方法 | |
US11231864B2 (en) | Memory access technology and computer system | |
CN102023942B (zh) | Spi外设访问装置及方法 | |
US8661180B2 (en) | Memory controlling device and memory controlling method | |
CN110008147B (zh) | 存储器控制器以及用于对存储模块进行访问的方法 | |
EP2985699B1 (en) | Memory access method and memory system | |
CN108536642A (zh) | 大数据运算加速系统和芯片 | |
US11379402B2 (en) | Secondary device detection using a synchronous interface | |
US11868300B2 (en) | Deferred communications over a synchronous interface | |
US7996601B2 (en) | Apparatus and method of partially accessing dynamic random access memory | |
KR100676981B1 (ko) | 데이터 처리 장치 및 방법과 컴퓨터 판독가능한 기록 매체 | |
CN102789424B (zh) | 基于fpga的外扩ddr2的读写方法及基于fpga的外扩ddr2颗粒存储器 | |
CN114443521A (zh) | 一种提高cpu和ddr5 dimm之间传输速率的和装置 | |
CN116583823A (zh) | 使用长向量仲裁的异步管线合并 | |
CN101421705A (zh) | 具有高储存容量的多媒体卡 | |
CN110720126B (zh) | 传输数据掩码的方法、内存控制器、内存芯片和计算机系统 | |
CN101236516A (zh) | 存储系统、存储设备和命令协议 | |
CN202003346U (zh) | 一种多通道的nand flash控制器 | |
KR20240112831A (ko) | 대역폭이 증가된 하이브리드 메모리 시스템 | |
CN103914413A (zh) | 用于粗粒度可重构系统的外存访问接口及其访问方法 | |
CN111831591B (zh) | 用于对存储模块进行访问控制的装置及方法 | |
US11392448B2 (en) | Payload parity protection for a synchronous interface | |
US11467762B2 (en) | Data bus inversion (DBI) in a memory system, controller and data transfer method | |
US20220121612A1 (en) | Static identifiers for a synchronous interface | |
CN102522113B (zh) | 一种sdram桥接电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: Room C2031, Suzhou Pioneer Park, 209 Zhuyuan Road, Suzhou High-tech Zone, Jiangsu Province Patentee after: Suzhou Guoxin Technology Co., Ltd. Address before: Room C2031, Suzhou Pioneer Park, 209 Zhuyuan Road, Suzhou High-tech Zone, Jiangsu Province Patentee before: C*Core Technology (Suzhou) Co., Ltd. |