CN102622192B - 一种弱相关多端口并行存储控制器 - Google Patents
一种弱相关多端口并行存储控制器 Download PDFInfo
- Publication number
- CN102622192B CN102622192B CN201210046908.7A CN201210046908A CN102622192B CN 102622192 B CN102622192 B CN 102622192B CN 201210046908 A CN201210046908 A CN 201210046908A CN 102622192 B CN102622192 B CN 102622192B
- Authority
- CN
- China
- Prior art keywords
- port
- memory
- memory access
- module
- access
- 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.)
- Expired - Fee Related
Links
Abstract
本发明提出的一种弱相关多端口并行存储控制器,与外围设备中的访存单元和包含多个存储块的存储体连接,能够实现外围设备中的访存单元与外围设备中的存储体之间的多端口并行存储;其包括:存储器端口模块、仲裁模块、地址生成模块、端口转接模块。本发明提出的多端口并行存储控制器具有如下优点:①支持任意长度的块读写,灵活度更高;②地址和数据的传输复用同一组信号线完成,大大降低了系统中传输信号线的数量,利于布局布线的实施,降低了系统的复杂性和成本;③本发明所提出的多端口并行存储控制器结构简单,使用信号传输线较少,能够支持大规模多端口存储器的设计与实现,提高多个处理器并行访存的效率。
Description
技术领域
本发明涉及一种弱相关多端口并行存储控制器,属于计算机体系结构、集成电路设计领域,适用于多内核微处理器及多处理器系统的共享存储器的构建。
背景技术
现有多端口并行存储控制器的实现方式有2类:①对于包括m个端口的存储控制器,其控制n个存储块(芯片)时,采用m×n交叉开关或片上网络将n个存储块(芯片)连接在一起,不同端口通过交叉开关或片上网络同时访问不同的存储块或芯片,此类结构共享存储器常见于目前绝大部分多核处理器的L2级共享存储器;其中m、n为正整数,m≥2且n≥m;②采用足够高频率的存储芯片,以致能够在较短时间内分m次访问不同存储单元的数据,完成不同端口的并行访问,此类结构共享存储器常见于处理器主频不高的场合,如手机等嵌入式应用。
上述两类结构多端口存储器的缺点在于:第①类多端口存储器仅支持固定长度数据的读写,灵活度较低;第②类多端口存储器往往只能应用于处理器主频不很高的场合,所以在多核处理器及大容量的L2共享存储的场合不适用。
发明内容
本发明的目的在于克服已有多端口存储器控制器存在的缺陷,提出一种弱相关多端口并行存储控制器,提高多个处理器并行访存的效率。
本发明的目的是通过以下技术方案实现的。
一种弱相关多端口并行存储控制器,与外围设备中的访存单元和包含多个存储块的存储体连接,能够实现外围设备中的访存单元与外围设备中的存储体之间的多端口并行存储;所述弱相关多端口并行存储控制器包括:存储器端口模块、仲裁模块、地址生成模块、端口转接模块。
所述存储器端口模块,包含m个端口,并预先为m个端口设置优先级顺序,m个端口的优先级均不同;其中,m≥2;其功能包括:①从外围设备中的访存单元获取并锁存访存请求信息;所述访存请求信息包括请求访存的起始地址、请求访存的长度及访存模式;所述访存模式包括读操作和写操作。②管理m个端口的状态;所述端口的状态为占用、等待或者空闲。
所述占用是指当外围设备中的访存单元正通过存储器端口模块中的某一端口进行访存操作时,称该端口的状态为占用;
所述等待是指当存储器端口模块中的某一端口接收到访存请求信息,但该端口与其它端口之间发生访存冲突,暂时不能进行访存操作,需等待到下一周期再次进行仲裁,则称该端口的状态为等待;
所述空闲是指存储器端口模块中的某一端口的状态既非占用、又非等待状态,称该端口的状态为空闲。
所述仲裁模块的功能包括:①从存储器端口模块中接收到访存请求信息的端口获取存访存请求信息和状态信息。②从地址生成模块获取当前时刻存储器端口模块每个端口的具体访存地址。③判断接收到访存请求信息的端口是否发生访存冲突。④如果接收到访存请求信息的端口发生访存冲突,则进行仲裁并将仲裁结果发送至地址生成模块和存储器端口模块中的相应端口。所述仲裁结果为允许进行访存操作或者等待。⑤如果接收到访存请求信息的端口未发生访存冲突,则发送允许进行访存操作信号至地址生成模块和存储器端口模块的相应端口。
所述判断存储器端口之间是否发生访存冲突的具体方法为:
当存储器端口模块的m个端口中的2个以上端口同时发起存储访问请求并且请求访存的起始地址相同时,则认为发生访存冲突,称该类访存冲突为并行冲突。
当存储器端口模块的m个端口中的1个端口发起存储访问请求并且请求访存的起始地址所在的存储块下一时刻将被其它端口访问时,则认为发生访存冲突,称该类访存冲突为阻塞冲突。
当发生并行冲突时,所述仲裁模块进行仲裁的具体方法为:根据发生并行冲突的端口的优先级进行仲裁,允许优先级最高的端口进行访存操作。
当发生阻塞冲突时,所述仲裁模块进行仲裁的具体方法为:不允许该端口进行访存操作,使该端口处于等待状态。
所述地址生成模块的功能包括:①从存储器端口模块获取访存请求信息;②从仲裁模块获取仲裁结果。③根据访存请求信息中的请求访存的起始地址、请求访存的长度生成当前时刻允许进行访存操作的端口的具体访存地址。
所述端口转接模块的功能为:从地址生成模块获取当前时刻允许进行访存操作的端口的具体访存地址及访存模式,在该端口与外围设备中的存储体之间建立连接,实现数据传输。
各功能模块的连接关系为:
存储器端口模块分别与外围设备中的访存单元、仲裁模块、地址生成模块、端口转接模块连接;仲裁模块分别与存储器端口模块、地址生成模块连接;地址生成模块分别与存储器端口模块、端口转接模块、仲裁模块连接;端口转接模块分别与地址生成模块和外围设备中的存储体连接。
所述存储器端口模块与外围设备中的访存单元之间的连接采用地址和数据复用同一组信号线的方式进行。
其工作过程包括第1步至第7步,具体为:
第1步:设置存储器端口模块的各端口初始状态均为空闲。当外围设备中的访存单元有访存请求时,执行第2步到第7步的操作。
第2步:外围设备中的访存单元同时发送r个访存请求信息到存储器端口模块的r个端口,其中1≤r≤m。
第3步:存储器端口模块锁存访存请求信息,并设置接收到访存请求信息的端口的状态为等待;
第4步:存储器端口模块中接收到访存请求信息的端口将端口状态信息和访存请求信息发送给仲裁模块。
第5步:仲裁模块根据访存请求信息以及当前时刻存储器端口模块每个端口的具体访存地址,依次判断接收到访存请求信息的端口是否发生访存冲突;所述当前时刻存储器端口模块每个端口的具体访存地址的初始值均为空。如果接收到访存请求信息的端口未发生访存冲突,则发送允许进行访存操作信号至地址生成模块和存储器端口模块的相应端口;如果接收到访存请求信息的端口发生访存冲突,则进行仲裁并将仲裁结果发送至地址生成模块和存储器端口模块的相应端口。
第6步:所述存储器端口模块中接收到访存请求信息的端口用“端口P”表示。当端口P接收到仲裁模块发送来的允许进行访存操作信号时,进行第6.1步至第6.4步操作:
第6.1步:端口P将其状态设置为占用,并向外围设备中的访存单元发送数据传输应答信号,同时端口P将访存请求信息中的请求访存的起始地址、请求访存的长度发送至地址生成模块,将访存请求信息中的访存模式发送给端口转发模块;
第6.2步:与第6.1步同步:地址生成模块根据端口P的访存请求信息中的请求访存的起始地址、请求访存的长度生成当前时刻端口P的具体访存地址,同时将端口P的具体访存地址发送给端口转发模块和仲裁模块;
第6.3步:端口转发模块根据端口P的访存请求信息中的访存模式以及当前时刻端口P的具体访存地址,在端口P与外围设备中的存储体之间建立连接,使端口P与外围设备中的存储体之间实现数据传输。
第6.4步:地址生成模块根据端口P的访存请求信息中的请求访存的起始地址、请求访存的长度以及当前时刻端口P的具体访存地址判断本次访存请求的数据访问是否完成,如果没有完成,则返回到第6.2步;如果已经完成,则将端口P的状态设置为空闲。
第7步:当端口P接收到仲裁模块发送来的仲裁结果为等待时,返回到第5步。
经过上述步骤的操作,即可实现多端口并行存储。
有益效果
本发明提出的一种弱相关多端口并行存储控制器与已有技术相比,具有以下优点:
①本发明所提出的多端口并行存储控制器支持任意长度的块读写,灵活度更高;
②本发明所提出的多端口并行存储控制器中地址和数据的传输复用同一组信号线完成,大大降低了系统中传输信号线的数量,利于布局布线的实施,降低了系统的复杂性和成本;
③本发明所提出的多端口并行存储控制器结构简单,使用信号传输线较少,能够支持大规模多端口存储器的设计与实现,例如16端口和32端口存储器,能够提高多个处理器并行访存的效率。
附图说明
附图1为本发明具体实施例中的一种弱相关多端口并行存储控制器的结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明技术方案做详细阐述。
实施例1:
本实施例中的一种弱相关多端口并行存储控制器,其结构示意图如图1所示,与外围设备中的访存单元和存储体连接,其包括:存储器端口模块、仲裁模块、地址生成模块、端口转接模块;外围设备中的访存单元包括4个处理器(C1~C4),外围设备中的存储体包括4个存储块(存储块1~存储块4)。
所述4个存储块中,每个存储块的存储字宽为8比特位,即1个字节。
所述存储器端口模块,包含4个端口(P1~P4),并预先为4个端口设置优先级顺序,4个端口的优先级均不同,其优先级关系为P1>P2>P3>P4;其功能包括:①从处理器获取并锁存访存请求信息;所述访存请求信息包括请求访存的起始地址、请求访存的长度及访存模式;所述访存模式包括读操作和写操作。②管理4个端口的状态;所述端口的状态为占用、等待或者空闲。
所述占用是指当处理器正通过存储器端口模块中的某一端口进行访存操作时,称该端口的状态为占用;
所述等待是指当存储器端口模块中的某一端口接收到访存请求信息,但该端口与其它端口之间发生访存冲突,暂时不能进行访存操作,需等待到下一周期再次进行仲裁,则称该端口的状态为等待;
所述空闲是指存储器端口模块中的某一端口的状态既非占用、又非等待状态,称该端口的状态为空闲。
所述仲裁模块的功能包括:①从存储器端口模块中接收到访存请求信息的端口获取存访存请求信息和状态信息。②从地址生成模块获取当前时刻存储器端口模块每个端口的具体访存地址。③判断接收到访存请求信息的端口是否发生访存冲突。④如果接收到访存请求信息的端口发生访存冲突,则进行仲裁并将仲裁结果发送至地址生成模块和存储器端口模块中的相应端口。所述仲裁结果为允许进行访存操作或者等待。⑤如果接收到访存请求信息的端口未发生访存冲突,则发送允许进行访存操作信号至地址生成模块和存储器端口模块的相应端口。
所述判断存储器端口之间是否发生访存冲突的具体方法为:
当存储器端口模块的4个端口中的2个以上端口同时发起存储访问请求并且请求访存的起始地址相同时,则认为发生访存冲突,称该类访存冲突为并行冲突。
当存储器端口模块的4个端口中的1个端口发起存储访问请求并且请求访存的起始地址所在的存储块下一时刻将被其它端口访问时,则认为发生访存冲突,称该类访存冲突为阻塞冲突。
当发生并行冲突时,所述仲裁模块进行仲裁的具体方法为:根据发生并行冲突的端口的优先级进行仲裁,允许优先级最高的端口进行访存操作。
当发生阻塞冲突时,所述仲裁模块进行仲裁的具体方法为:不允许该端口进行访存操作,使该端口处于等待状态。
所述地址生成模块的功能包括:①从存储器端口模块获取访存请求信息;②从仲裁模块获取仲裁结果。③根据访存请求信息中的请求访存的起始地址、请求访存的长度生成当前时刻允许进行访存操作的端口的具体访存地址。
所述端口转接模块的功能为:从地址生成模块获取当前时刻允许进行访存操作的端口的具体访存地址及访存模式,在该端口与存储体之间建立连接,实现数据传输。
所述外围设备中的4个存储块采用交叉寻址方式存储数据,即处理器给出的访存地址(用a表示,a为整数)中的数据存储在第b(0≤b≤3)个存储块中的a'地址,b=a MOD 4,其中MOD表示求模操作,表示向下取整。
各功能模块的连接关系为:
存储器端口模块中的端口P1与处理器C1连接,存储器端口模块中的端口P2与处理器C2连接,存储器端口模块中的端口P3与处理器C3连接,存储器端口模块中的端口P4与处理器C4连接。存储器端口模块分别与仲裁模块、地址生成模块、端口转接模块连接;仲裁模块分别与存储器端口模块、地址生成模块连接;地址生成模块分别与存储器端口模块、端口转接模块、仲裁模块连接;端口转接模块分别与地址生成模块和外围设备中的存储体连接。
所述存储器端口模块与外围设备中的访存单元之间的连接采用地址和数据复用同一组信号线的方式进行。
其工作过程包括第1步至第7步,具体为:
第1步:设置存储器端口模块的各端口初始状态均为空闲。当处理器有访存请求时,执行第2步到第7步的操作。
第2步:在第1时钟周期,处理器C1发送访存请求信息到存储器端口模块中的端口P1,其中数据块起始地址为0x00000000,数据块长度为64字节,访存模式为读;同时处理器C3发送访存请求信息到存储器端口模块中的端口P3,其中数据块起始地址为0x00000000,数据块长度为128字节,访存模式为写。
第3步:从第1到第2时钟周期,存储器端口模块中的端口P1和P3分别锁存来自处理器C1和C3的访存请求信息,并设置端口P1和P3的状态为等待;
第4步:第3时钟周期,存储器端口模块中的端口P1和P3将各自的端口状态信息和访存请求信息发送给仲裁模块。
第5步:仲裁模块根据访存请求信息以及当前时刻存储器端口模块每个端口的具体访存地址,依次判断接收到访存请求信息的端口是否发生访存冲突;所述当前时刻存储器端口模块端口P2和P4的具体访存地址的初始值均为空。由于存储器端口模块中的端口P1和P3发生并行访存冲突,且P1的优先级高于P3的优先级,则仲裁结果为第3时钟周期发送允许进行访存操作信号至地址生成模块和存储器端口模块的端口P1。
第6步:从第4时钟周期开始,所述存储器端口模块中的端口P1接收到来自仲裁模块发送来的允许进行访存操作信号时,进行第6.1步至第6.4步操作:
第6.1步:端口P1将其状态设置为占用,并向处理器C1发送数据传输应答信号,同时端口P1将访存请求信息中的请求访存的起始地址、请求访存的长度发送至地址生成模块,将访存请求信息中的访存模式发送给端口转发模块;
第6.2步:与第6.1步同步:地址生成模块根据端口P1的访存请求信息中的请求访存的起始地址、请求访存的长度生成当前时刻端口P1的具体访存地址,同时将端口P1的具体访存地址发送给端口转发模块和仲裁模块;
第6.3步:端口转接模块根据端口P1的访存请求信息中的访存模式以及当前时刻端口P1的具体访存地址,在端口P1与外围设备中的存储体之间建立连接,使端口P1与外围设备中的存储体之间实现数据传输。
第6.4步:地址生成模块根据端口P1的访存请求信息中的请求访存的起始地址、请求访存的长度以及当前时刻端口P1的具体访存地址判断本次访存请求的数据访问是否完成,如果没有完成,则返回到第6.2步;如果已经完成,则将端口P1的状态设置为空闲。
第7步:端口P3接收到仲裁模块发送来的仲裁结果为等待,因此返回到第5步。
第5步:仲裁模块根据访存请求信息以及当前时刻存储器端口模块每个端口的具体访存地址,依次判断接收到访存请求信息的端口是否发生访存冲突;第4时钟周期,所述存储器端口模块端口P2和P4的具体访存地址的初始值均为空;存储器端口模块中的端口P1的状态为占用,当前访存地址为0x00000000,下一时钟周期访存地址为0x00000001,与P3访存地址0x00000000不同,则仲裁结果为发送允许进行访存操作信号至地址生成模块和存储器端口模块的端口P3。
第6步:所述存储器端口模块中的端口P3接收到来自仲裁模块发送来的允许进行访存操作信号时,进行第6.1步至第6.4步操作:
第6.1步:端口P3将其状态设置为占用,并向处理器C3发送数据传输应答信号,同时端口P3将访存请求信息中的请求访存的起始地址、请求访存的长度发送至地址生成模块,将访存请求信息中的访存模式发送给端口转发模块;
第6.2步:与第6.1步同步:地址生成模块根据端口P3的访存请求信息中的请求访存的起始地址、请求访存的长度生成当前时刻端口P3的具体访存地址,同时将端口P3的具体访存地址发送给端口转发模块和仲裁模块;
第6.3步:端口转接模块根据端口P3的访存请求信息中的访存模式以及当前时刻端口P3的具体访存地址,在端口P3与外围设备中的存储体之间建立连接,使端口P3与外围设备中的存储体之间实现数据传输。
第6.4步:地址生成模块根据端口P3的访存请求信息中的请求访存的起始地址、请求访存的长度以及当前时刻端口P3的具体访存地址判断本次访存请求的数据访问是否完成,如果没有完成,则返回到第6.2步;如果已经完成,则将端口P3的状态设置为空闲。
实施例2:
本实施例中的一种弱相关多端口并行存储控制器,其结构与实施例1中的一样,其工作过程具体为:
第1步:设置存储器端口模块的各端口初始状态均为空闲。当处理器有访存请求时,执行第2步到第7步的操作。
第2步:在第1时钟周期,处理器C1发送访存请求信息到存储器端口模块中的端口P1,其中数据块起始地址为0x00000000,数据块长度为64字节,访存模式为读;在第3时钟周期,处理器C3发送访存请求信息到存储器端口模块中的端口P3,其中数据块起始地址为0x00000002,数据块长度为128字节,访存模式为写。
第3步:从第1到第2时钟周期,存储器端口模块中的端口P1锁存来自处理器C1的访存请求信息,从第3到第4时钟周期,存储器端口模块中的端口P3分别锁存来自处理器C3的访存请求信息,并设置端口P3的状态为等待;
第4步:第3时钟周期,存储器端口模块中的端口P1将其端口状态信息和访存请求信息发送给仲裁模块。第5时钟周期,存储器端口模块中的端口P3将其端口状态信息和访存请求信息发送给仲裁模块。
第5步:仲裁模块根据访存请求信息以及当前时刻存储器端口模块每个端口的具体访存地址,依次判断接收到访存请求信息的端口是否发生访存冲突;所述当前时刻存储器端口模块端口P2和P4的具体访存地址的初始值均为空。第3时钟周期,由于只有P1发起存储访问请求,则仲裁结果为第3时钟周期发送允许进行访存操作信号至地址生成模块和存储器端口模块的端口P1。第5时钟周期,存储器端口模块端口P1访存地址为0x00000001,下一时钟周期存储器端口模块端口P1访存地址为0x00000002,与存储器端口模块端口P3的起始访存地址0x00000002相同,由于存储器端口模块端口P1的状态为占用,则仲裁结果为第5时钟周期发送等待信号至存储器端口模块的端口P3。
第6步:从第4时钟周期开始,所述存储器端口模块中的端口P1接收到来自仲裁模块发送来的允许进行访存操作信号时,进行第6.1步至第6.4步操作:
第6.1步:端口P1将其状态设置为占用,并向处理器C1发送数据传输应答信号,同时端口P1将访存请求信息中的请求访存的起始地址、请求访存的长度发送至地址生成模块,将访存请求信息中的访存模式发送给端口转发模块;
第6.2步:与第6.1步同步:地址生成模块根据端口P1的访存请求信息中的请求访存的起始地址、请求访存的长度生成当前时刻端口P1的具体访存地址,同时将端口P1的具体访存地址发送给端口转发模块和仲裁模块;
第6.3步:端口转接模块根据端口P1的访存请求信息中的访存模式以及当前时刻端口P1的具体访存地址,在端口P1与外围设备中的存储体之间建立连接,使端口P1与外围设备中的存储体之间实现数据传输。
第6.4步:地址生成模块根据端口P1的访存请求信息中的请求访存的起始地址、请求访存的长度以及当前时刻端口P1的具体访存地址判断本次访存请求的数据访问是否完成,如果没有完成,则返回到第6.2步;如果已经完成,则将端口P1的状态设置为空闲。
第7步:第5时钟周期,端口P3接收到仲裁模块发送来的仲裁结果为等待,因此返回到第5步。
第5步:仲裁模块根据访存请求信息以及当前时刻存储器端口模块每个端口的具体访存地址,依次判断接收到访存请求信息的端口是否发生访存冲突;第6时钟周期,所述存储器端口模块端口P2和P4的具体访存地址的初始值均为空;存储器端口模块中的端口P1的状态为占用,当前访存地址为0x00000002,下一时钟周期访存地址为0x00000003,与P3的起始地址0x00000002不同,则仲裁结果为发送允许进行访存操作信号至地址生成模块和存储器端口模块的端口P3。
第6步:所述存储器端口模块中的端口P3接收到来自仲裁模块发送来的允许进行访存操作信号时,进行第6.1步至第6.4步操作:
第6.1步:端口P3将其状态设置为占用,并向处理器C3发送数据传输应答信号,同时端口P3将访存请求信息中的请求访存的起始地址、请求访存的长度发送至地址生成模块,将访存请求信息中的访存模式发送给端口转发模块;
第6.2步:与第6.1步同步:地址生成模块根据端口P3的访存请求信息中的请求访存的起始地址、请求访存的长度生成当前时刻端口P3的具体访存地址,同时将端口P3的具体访存地址发送给端口转发模块和仲裁模块;
第6.3步:端口转接模块根据端口P3的访存请求信息中的访存模式以及当前时刻端口P3的具体访存地址,在端口P3与外围设备中的存储体之间建立连接,使端口P3与外围设备中的存储体之间实现数据传输。
第6.4步:地址生成模块根据端口P3的访存请求信息中的请求访存的起始地址、请求访存的长度以及当前时刻端口P3的具体访存地址判断本次访存请求的数据访问是否完成,如果没有完成,则返回到第6.2步;如果已经完成,则将端口P3的状态设置为空闲。
以上结合具体实施例对本发明的技术方案作了说明,但这些说明不能被理解为限制了本发明的范围,本发明的保护范围由随附的权利要求书限定,任何在本发明权利要求基础上的改动都是本发明的保护范围。
Claims (3)
1.一种弱相关多端口并行存储控制器,与外围设备中的访存单元和包含多个存储块的存储体连接,能够实现外围设备中的访存单元与外围设备中的存储体之间的多端口并行存储;其特征在于:包括:存储器端口模块、仲裁模块、地址生成模块、端口转接模块;
所述存储器端口模块,包含m个端口,并预先为m个端口设置优先级顺序,m个端口的优先级均不同;其中,m≥2;其功能包括:①从外围设备中的访存单元获取并锁存访存请求信息;所述访存请求信息包括请求访存的起始地址、请求访存的长度及访存模式;所述访存模式包括读操作和写操作;②管理m个端口的状态;所述端口的状态为占用、等待或者空闲;
所述占用是指当外围设备中的访存单元正通过存储器端口模块中的某一端口进行访存操作时,称该端口的状态为占用;
所述等待是指当存储器端口模块中的某一端口接收到访存请求信息,但该端口与其它端口之间发生访存冲突,暂时不能进行访存操作,需等待到下一周期再次进行仲裁,则称该端口的状态为等待;
所述空闲是指存储器端口模块中的某一端口的状态既非占用、又非等待状态,称该端口的状态为空闲;
所述仲裁模块的功能包括:①从存储器端口模块中接收到访存请求信息的端口获取存访存请求信息和状态信息;②从地址生成模块获取当前时刻存储器端口模块每个端口的具体访存地址;③判断接收到访存请求信息的端口是否发生访存冲突;④如果接收到访存请求信息的端口发生访存冲突,则进行仲裁并将仲裁结果发送至地址生成模块和存储器端口模块中的相应端口;所述仲裁结果为允许进行访存操作或者等待;⑤如果接收到访存请求信息的端口未发生访存冲突,则发送允许进行访存操作信号至地址生成模块和存储器端口模块的相应端口;
所述判断存储器端口之间是否发生访存冲突的具体方法为:
当外围设备中的访存单元通过存储器端口模块的m个端口中的2个以上端口同时发起存储访问请求并且请求访存的起始地址相同时,则认为发生访存冲突,称该类访存冲突为并行冲突;
当外围设备中的访存单元通过存储器端口模块的m个端口中的1个端口发起存储访问请求并且请求访存的起始地址所在的存储块下一时刻将被其它端口访问时,则认为发生访存冲突,称该类访存冲突为阻塞冲突;
当发生并行冲突时,所述仲裁模块进行仲裁的具体方法为:根据发生并行冲突的端口的优先级进行仲裁,允许优先级最高的端口进行访存操作;
当发生阻塞冲突时,所述仲裁模块进行仲裁的具体方法为:不允许发生阻塞的端口进行访存操作,使发生阻塞的端口处于等待状态;
所述地址生成模块的功能包括:①从存储器端口模块获取访存请求信息;②从仲裁模块获取仲裁结果;③根据访存请求信息中的请求访存的起始地址、请求访存的长度生成当前时刻允许进行访存操作的端口的具体访存地址;
所述端口转接模块的功能为:从地址生成模块获取当前时刻允许进行访存操作的端口的具体访存地址及访存模式,在该端口与外围设备中的存储体之间建立连接,实现数据传输;
各功能模块的连接关系为:
存储器端口模块分别与外围设备中的访存单元、仲裁模块、地址生成模块、端口转接模块连接;仲裁模块分别与存储器端口模块、地址生成模块连接;地址生成模块分别与存储器端口模块、端口转接模块、仲裁模块连接;端口转接模块分别与地址生成模块和外围设备中的存储体连接。
2.如权利要求1所述的一种弱相关多端口并行存储控制器,其特征在于:其工作过程包括第1步至第7步,具体为:
第1步:设置存储器端口模块的各端口初始状态均为空闲;当外围设备中的访存单元有访存请求时,执行第2步到第7步的操作;
第2步:外围设备中的访存单元同时发送r个访存请求信息到存储器端口模块的r个端口,其中1≤r≤m;
第3步:存储器端口模块锁存访存请求信息,并设置接收到访存请求信息的端口的状态为等待;
第4步:存储器端口模块中接收到访存请求信息的端口将端口状态信息和访存请求信息发送给仲裁模块;
第5步:仲裁模块根据访存请求信息以及当前时刻存储器端口模块每个端口的具体访存地址,依次判断接收到访存请求信息的端口是否发生访存冲突;所述当前时刻存储器端口模块每个端口的具体访存地址的初始值均为空;如果接收到访存请求信息的端口未发生访存冲突,则发送允许进行访存操作信号至地址生成模块和存储器端口模块的相应端口;如果接收到访存请求信息的端口发生访存冲突,则进行仲裁并将仲裁结果发送至地址生成模块和存储器端口模块的相应端口;
第6步:所述存储器端口模块中接收到访存请求信息的端口用“端口P”表示;当端口P接收到仲裁模块发送来的允许进行访存操作信号时,进行第6.1步至第6.4步操作:
第6.1步:端口P将其状态设置为占用,并向外围设备中的访存单元发送数据传输应答信号,同时端口P将访存请求信息中的请求访存的起始地址、请求访存的长度发送至地址生成模块,将访存请求信息中的访存模式发送给端口转发模块;
第6.2步:与第6.1步同步:地址生成模块根据端口P的访存请求信息中的请求访存的起始地址、请求访存的长度生成当前时刻端口P的具体访存地址,同时将端口P的具体访存地址发送给端口转发模块和仲裁模块;
第6.3步:端口转发模块根据端口P的访存请求信息中的访存模式以及当前时刻端口P的具体访存地址,在端口P与外围设备中的存储体之间建立连接,使端口P与外围设备中的存储体之间实现数据传输;
第6.4步:地址生成模块根据端口P的访存请求信息中的请求访存的起始地址、请求访存的长度以及当前时刻端口P的具体访存地址判断本次访存请求的数据访问是否完成,如果没有完成,则返回到第6.2步;如果已经完成,则将端口P的状态设置为空闲;
第7步:当端口P接收到仲裁模块发送来的仲裁结果为等待时,返回到第5步;
经过上述步骤的操作,即可实现多端口并行存储。
3.如权利要求1或2中所述的一种弱相关多端口并行存储控制器,其特征在于:所述存储器端口模块与外围设备中的访存单元之间的连接采用地址和数据复用同一组信号线的方式进行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210046908.7A CN102622192B (zh) | 2012-02-27 | 2012-02-27 | 一种弱相关多端口并行存储控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210046908.7A CN102622192B (zh) | 2012-02-27 | 2012-02-27 | 一种弱相关多端口并行存储控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102622192A CN102622192A (zh) | 2012-08-01 |
CN102622192B true CN102622192B (zh) | 2014-11-19 |
Family
ID=46562128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210046908.7A Expired - Fee Related CN102622192B (zh) | 2012-02-27 | 2012-02-27 | 一种弱相关多端口并行存储控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102622192B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123228B (zh) * | 2014-07-21 | 2018-03-09 | 曙光信息产业(北京)有限公司 | 一种数据存储系统及其使用方法 |
CN105446935B (zh) * | 2014-09-30 | 2019-07-19 | 深圳市中兴微电子技术有限公司 | 共享存储并发访问处理方法及装置 |
CN106160920B (zh) * | 2015-03-31 | 2019-05-31 | 联想(北京)有限公司 | 一种信息处理方法、装置及电子设备 |
CN104899008B (zh) * | 2015-06-23 | 2018-10-12 | 北京玉华骢科技股份有限公司 | 并行处理器中的共享存储结构及方法 |
CN106569727B (zh) * | 2015-10-08 | 2019-04-16 | 福州瑞芯微电子股份有限公司 | 一种多控制器间多存储器共享并行数据读写装置及其写入、读取方法 |
CN105539196B (zh) * | 2015-12-08 | 2017-10-10 | 北京理工大学 | 电动汽车的反馈式变优先级组合传输网络化控制装置 |
CN105522935B (zh) * | 2015-12-14 | 2017-12-05 | 北京理工大学 | 电动汽车的应用驱动式动态切换网络化控制装置 |
CN106776377B (zh) * | 2016-12-12 | 2020-04-28 | 中国航空工业集团公司西安航空计算技术研究所 | 一种用于并发读取多个存储单元的地址合并处理电路 |
CN106959929B (zh) * | 2017-03-17 | 2020-08-04 | 数据通信科学技术研究所 | 一种多端口访问的存储器及其工作方法 |
CN111324311B (zh) * | 2020-02-28 | 2021-09-14 | 苏州浪潮智能科技有限公司 | 一种lun划分方法和设备 |
WO2022094941A1 (zh) * | 2020-11-06 | 2022-05-12 | 深圳市大疆创新科技有限公司 | 存储器的访问控制方法、装置和存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0875030A2 (en) * | 1996-09-25 | 1998-11-04 | Koninklijke Philips Electronics N.V. | Multi-port cache memory with address conflict detection |
US6594196B2 (en) * | 2000-11-29 | 2003-07-15 | International Business Machines Corporation | Multi-port memory device and system for addressing the multi-port memory device |
JP5070656B2 (ja) * | 2000-12-20 | 2012-11-14 | 富士通セミコンダクター株式会社 | 半導体記憶装置 |
CN100573488C (zh) * | 2007-04-06 | 2009-12-23 | 北京理工大学 | 一种基于同步访问模式的多端口存储器 |
CN101038571A (zh) * | 2007-04-19 | 2007-09-19 | 北京理工大学 | 一种块传输的多端口存储控制器 |
-
2012
- 2012-02-27 CN CN201210046908.7A patent/CN102622192B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN102622192A (zh) | 2012-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102622192B (zh) | 一种弱相关多端口并行存储控制器 | |
JP5784582B2 (ja) | コンフィギュラブルな帯域幅メモリ・デバイスおよび方法 | |
CN100489809C (zh) | 适合向多处理器提供专用或共享存储器的存储器及其方法 | |
CN102141971B (zh) | 具有大容量存储功能的1553b硬件定时通讯模块 | |
CN103246625B (zh) | 一种数据与地址共用引脚自适应调整访存粒度的方法 | |
US10552047B2 (en) | Memory system | |
CN101040274A (zh) | 在不同芯片中命令控制不同的操作 | |
CN1766862A (zh) | 包括存储器存取控制器和总线的存储器件的微处理器系统 | |
TW200822310A (en) | 3D chip arrangement including memory manager | |
WO2009067522A2 (en) | A memory buffering system that improves read/write performance and provides low latency for mobile systems | |
CN102292715A (zh) | 存储器装置功率管理器及其方法 | |
EP1963977B1 (en) | Memory systems with memory chips down and up | |
JP2019518286A (ja) | メモリバス上のマルチレベルデータキャッシュ及びストレージ | |
US7761668B2 (en) | Processor architecture having multi-ported memory | |
US9396116B2 (en) | Write and read collision avoidance in single port memory devices | |
CN103019988A (zh) | 电脑、嵌入式控制器及其方法 | |
WO2021113778A1 (en) | Data transfers between a memory and a distributed compute array | |
JP2013527541A (ja) | デイジーチェーン接続されたデバイスのための高速インターフェイス | |
WO2007114676A1 (en) | Device having shared memory and method for providing access status information by shared memory | |
CN106502923B (zh) | 阵列处理器中簇内存储访问行列两级交换电路 | |
EP1588276A1 (en) | Processor array | |
US8069327B2 (en) | Commands scheduled for frequency mismatch bubbles | |
CN103226529B (zh) | 基于Nandflash的双端口存储器电路 | |
CN113157602A (zh) | 一种对内存进行分配的方法、设备及计算机可读存储介质 | |
CN106057226B (zh) | 双端口存储系统的存取控制方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141119 Termination date: 20150227 |
|
EXPY | Termination of patent right or utility model |