CN112631757A - 一种ddr4多用户访问的调度方法和设备 - Google Patents

一种ddr4多用户访问的调度方法和设备 Download PDF

Info

Publication number
CN112631757A
CN112631757A CN202011617545.9A CN202011617545A CN112631757A CN 112631757 A CN112631757 A CN 112631757A CN 202011617545 A CN202011617545 A CN 202011617545A CN 112631757 A CN112631757 A CN 112631757A
Authority
CN
China
Prior art keywords
cache
channel
group
access
access addresses
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
Application number
CN202011617545.9A
Other languages
English (en)
Other versions
CN112631757B (zh
Inventor
李云照
杨桃
陈宇霆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Zhuoxin Cloud Network Technology Co ltd
Original Assignee
Chengdu Zhuoxin Cloud Network Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Zhuoxin Cloud Network Technology Co ltd filed Critical Chengdu Zhuoxin Cloud Network Technology Co ltd
Priority to CN202011617545.9A priority Critical patent/CN112631757B/zh
Publication of CN112631757A publication Critical patent/CN112631757A/zh
Application granted granted Critical
Publication of CN112631757B publication Critical patent/CN112631757B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种DDR4多用户访问的调度方法和设备,该方法包括当检测到多通道存在访问请求时,根据上拍已应答通道的编号和各通道的编号每次确定一个待应答通道,并将与所述待应答通道对应的访问地址按照预设数量并行存入所述预设数量的第一类缓存中;根据各所述第一类缓存的第一编号和第一状态从所述第一类缓存中读取第一组访问地址,并将所述第一组访问地址存入所述预设数量的第二类缓存中;根据各所述第二类缓存的第二编号和第二状态从所述第二类缓存中读取第二组访问地址,并将所述第二组访问地址存入预设缓存;根据MIG接口的状态和所述第二组访问地址的等待值对所述第二组访问地址进行处理,从而进一步提升了DDR4多用户访问的调度的效率。

Description

一种DDR4多用户访问的调度方法和设备
技术领域
本申请涉及计算机通信技术领域,更具体地,涉及一种DDR4多用户访问的调度方法和设备。
背景技术
DDR4内存是新一代的内存规格。DDR4相比DDR3最大的区别有三点:16bit预取机制(DDR3为8bit),同样内核频率下理论速度是DDR3的两倍;更可靠的传输规范,数据可靠性进一步提升;工作电压降为1.2V,更节能。
随着存储芯片的发展,储容量和频率的提升带来了更大数据量和多用户的访问,但是研究数据表明,处理器的处理效率每年以约60%增加,而存储器处理效率的提升率仅为10%,两者的匹配在实际运用中带来了额外的开销成本。
因此,如何进一步提升DDR4多用户访问的调度的效率,降低开销成本,是目前有待解决的技术问题。
发明内容
本发明提出一种DDR4多用户访问的调度方法,用以解决现有技术中DDR4多用户访问的调度的效率低的技术问题,该方法包括:
当检测到多通道存在访问请求时,根据上拍已应答通道的编号和各通道的编号每次确定一个待应答通道,并将与所述待应答通道对应的访问地址按照预设数量并行存入所述预设数量的第一类缓存中;
根据各所述第一类缓存的第一编号和第一状态从所述第一类缓存中读取第一组访问地址,并将所述第一组访问地址存入所述预设数量的第二类缓存中;
根据各所述第二类缓存的第二编号和第二状态从所述第二类缓存中读取第二组访问地址,并将所述第二组访问地址存入预设缓存;
根据MIG接口的状态和所述第二组访问地址的等待值对所述第二组访问地址进行处理;
其中,所述第一类缓存为与所述访问地址的分流值对应的Bank等级的缓存,所述第二类缓存为Bank Group等级的缓存,所述等待值在所述预设缓存中存入所述第二组访问地址之后的新的访问地址时加一。
在本申请一些实施例中,根据上拍已应答通道的编号和各通道的编号每次确定一个待应答通道,具体为:
若不存在所述上拍已应答通道,将第一预设编号的通道作为所述待应答通道;
若当前通道的编号与所述上拍已应答通道的编号一致,将所述当前通道作为所述待应答通道;
若当前通道的编号与所述上拍已应答通道的编号不一致,将编号小于所述上拍已应答通道的编号且与所述上拍已应答通道相邻的通道作为所述待应答通道。
在本申请一些实施例中,在根据上拍已应答通道的编号和各通道的编号每次确定一个待应答通道之后,所述方法还包括:
基于应答所述待应答通道获取所述访问地址,并将溢出指示信号广播给各所述通道。
在本申请一些实施例中,根据各所述第一类缓存的第一编号和第一状态从所述第一类缓存中读取第一组访问地址,具体为:
根据所述第一编号的第一预设顺序依次将所述第一状态不为空的缓存加入第一初始选择队列;
在未接收到轮询保持信号时,根据依次从所述第一初始选择队列中读取的地址信息确定所述第一组访问地址。
在本申请一些实施例中,根据各所述第二类缓存的第二编号和第二状态从所述第二类缓存中读取第二组访问地址,具体为:
根据所述第二编号的第二预设顺序依次将所述第二状态不为空的缓存加入第二初始选择队列;
在未接收到所述轮询保持信号时,根据依次从所述第二初始选择队列中读取的地址信息确定所述第二组访问地址。
在本申请一些实施例中,所述预设缓存的缓存队列在存在访问地址输入且不存在访问地址输出时队列计数加一,所述缓存队列在不存在访问地址输入且存在访问地址输出时队列计数减一,所述轮询保持信号是在所述队列计数大于第一预设阈值时生成的。
在本申请一些实施例中,在根据各所述第二类缓存的第二编号和第二状态从所述第二类缓存中读取第二组访问地址之前,所述方法还包括:
若存在所述预设缓存的溢出指示信号,不读取所述第二组访问地址。
在本申请一些实施例中,根据MIG接口的状态和所述第二组访问地址的等待值对所述第二组访问地址进行处理,具体为:
若所述MIG接口处于预设就绪状态且所述等待值大于第二预设阈值,从所述预设缓存中读取所述第二组访问地址并发送到所述MIG接口;
若所述MIG接口不处于预设就绪状态或所述等待值不大于所述第二预设阈值,停止从所述预设缓存中读取所述第二组访问地址。
相应的,本发明还提出了一种DDR4多用户访问的调度设备,所述设备包括:
第一存入模块,用于当检测到多通道存在访问请求时,根据上拍已应答通道的编号和各通道的编号每次确定一个待应答通道,并将与所述待应答通道对应的访问地址按照预设数量并行存入所述预设数量的第一类缓存中;
第二存入模块,用于根据各所述第一类缓存的第一编号和第一状态从所述第一类缓存中读取第一组访问地址,并将所述第一组访问地址存入所述预设数量的第二类缓存中;
第三存入模块,用于根据各所述第二类缓存的第二编号和第二状态从所述第二类缓存中读取第二组访问地址,并将所述第二组访问地址存入预设缓存;
处理模块,用于根据MIG接口的状态和所述第二组访问地址的等待值对所述第二组访问地址进行处理;
其中,所述第一类缓存为与所述访问地址的分流值对应的Bank等级的缓存,所述第二类缓存为Bank Group等级的缓存,所述等待值在所述预设缓存中存入新的访问地址时加一。
相应的,本发明还提出了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如上所述的DDR4多用户访问的调度方法。
与现有技术对比,本发明具备以下有益效果:
本发明公开了一种DDR4多用户访问的调度方法和设备,该方法包括当检测到多通道存在访问请求时,根据上拍已应答通道的编号和各通道的编号每次确定一个待应答通道,并将与所述待应答通道对应的访问地址按照预设数量并行存入所述预设数量的第一类缓存中;根据各所述第一类缓存的第一编号和第一状态从所述第一类缓存中读取第一组访问地址,并将所述第一组访问地址存入所述预设数量的第二类缓存中;根据各所述第二类缓存的第二编号和第二状态从所述第二类缓存中读取第二组访问地址,并将所述第二组访问地址存入预设缓存;根据MIG接口的状态和所述第二组访问地址的等待值对所述第二组访问地址进行处理,其中,所述第一类缓存为与所述访问地址的分流值对应的Bank等级的缓存,所述第二类缓存为Bank Group等级的缓存,所述等待值在所述预设缓存中存入所述第二组访问地址之后的新的访问地址时加一,从而减小了整体的访问延迟,进一步提升了DDR4多用户访问的调度的效率,降低了开销成本。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例提出的一种DDR4多用户访问的调度方法的流程示意图;
图2示出了本发明实施例中DDR4多用户访问的调度的原理示意图;
图3示出了本发明实施例中轮转算法逻辑流程图;
图4示出了本发明实施例中轮询逻辑处理状态图;
图5示出了本发明实施例中队列深度控制逻辑图;
图6示出了本发明实施例中适配与调度逻辑处理图;
图7示出了本发明实施例中分流值选择图;
图8示出了本发明实施例中轮询指针抽象图;
图9示出了本发明实施例提出的一种DDR4多用户访问的调度设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明实施例提出了一种DDR4多用户访问的调度方法,如图1所示,该方法包括以下步骤:
步骤S101,当检测到多通道存在访问请求时,根据上拍已应答通道的编号和各通道的编号每次确定一个待应答通道,并将与所述待应答通道对应的访问地址按照预设数量并行存入所述预设数量的第一类缓存中。
本实施例中,每拍只能确定一个待应答通道,当检测到多通道存在访问请求时,根据上拍已应答通道的编号和各通道的编号每次确定一个待应答通道,根据该待应答通道可确定相应的访问地址,根据该访问地址可确定分流值,在本申请具体的应用场景中,如图7所示,该分流值包括指示Bank Group地址的第一分流值Sp0和指示该Bank Group地址下的Bank地址的第二分流值Sp1。根据该分流值可将该访问地址分流至该Bank地址下的Bank等级的缓存(即第一类缓存)中,在本申请具体的应用场景中,如图2所示,该第一类缓存为缓存0、缓存1、缓存2、缓存3。
当访问地址的数量达到预设数量(如4个)时,将该预设数量的访问地址并行存入预设数量的第一类缓存中,即同时分别存入缓存0、缓存1、缓存2、缓存3中。
为了确定准确的待应答通道,在本申请一些实施例中,根据上拍已应答通道的编号和各通道的编号每次确定一个待应答通道,具体为:
若不存在所述上拍已应答通道,将第一预设编号的通道作为所述待应答通道;
若当前通道的编号与所述上拍已应答通道的编号一致,将所述当前通道作为所述待应答通道;
若当前通道的编号与所述上拍已应答通道的编号不一致,将编号小于所述上拍已应答通道的编号并与所述上拍已应答通道相邻的通道作为所述待应答通道。
本实施例中,基于多通道轮转策略确定待应答通道,编号小的通道的优先级大于编号大通道的优先级,单次仅应答一个通道,若不存在所述上拍已应答通道,本拍将第一预设编号的通道作为所述待应答通道,该第一预设编号可以为0;若当前通道的编号与上拍已应答通道N的编号一致,本拍将当前通道作为待应答通道;若当前通道的编号与上拍已应答通道N的编号不一致,本拍将编号小于上拍已应答通道N的编号且与上拍已应答通道N相邻的通道作为待应答通道,也即将通道N-1作为待应答通道。
在本申请具体的应用场景中,如图8所示,通道指针指向通道编号数值最大位置并且该位置有访问请求,应答指针指向应答所在通道的位置,若无应答则指向0通道。
需要说明的是,以上优选实施例的方案仅为本申请所提出的一种具体实现方案,其他根据上拍已应答通道的编号和各通道的编号每次确定一个待应答通道的方式均属于本申请的保护范围。
为了提高DDR4的可靠性,在本申请一些实施例中,在根据上拍已应答通道的编号和各通道的编号每次确定一个待应答通道之后,所述方法还包括:
基于应答所述待应答通道获取所述访问地址,并将溢出指示信号广播给各所述通道。
步骤S102,根据各所述第一类缓存的第一编号和第一状态从所述第一类缓存中读取第一组访问地址,并将所述第一组访问地址存入所述预设数量的第二类缓存中。
本实施例中,第二类缓存为Bank Group等级的缓存,在本申请具体的应用场景中,如图2所示,第二类缓存为缓存模块0、缓存模块1、缓存模块2、缓存模块3,先根据各第一类缓存的第一编号和第一状态从第一类缓存中读取第一组访问地址,然后将该第一组访问地址存入该预设数量的第二类缓存中。
为了准确获取第一组访问地址,在本申请一些实施例中,根据各所述第一类缓存的第一编号和第一状态从所述第一类缓存中读取第一组访问地址,具体为:
根据所述第一编号的第一预设顺序依次将所述第一状态不为空的缓存加入第一初始选择队列;
在未接收到轮询保持信号时,根据依次从所述第一初始选择队列中读取的地址信息确定所述第一组访问地址。
本实施例中,基于轮询输出地址策略确定第一组访问地址,编号小的第一类缓存的优先级大于编号大的第一类缓存的优先级,因此第一预设顺序为从小到大。若当前第一类缓存不为空,加入第一初始选择队列,并按照编号递增优先级递减的策略选择轮询至优先级高的一路,直至轮询完毕确定第一初始选择队列。
在未接收到轮询保持信号时,根据依次从所述第一初始选择队列中读取的地址信息确定第一组访问地址。
在本申请具体的应用场景中,监控轮询指针指到的缓存状态,根据如果已经读出该缓存的地址或者未传入轮询保持信号,轮询指针指到下一个缓存,如图4所示,Initial代表系统上电。Robin代表当前缓存内容已经获取或者无保持指示。Keep为保持指示,后级反馈产生。S0为初始状态,S1用于监测缓存0状态,轮询的控制;S2用于监测缓存1状态,轮询的控制;S3用于监测缓存2状态,轮询的控制;S4用于监测缓存3状态,轮询的控制。
需要说明的是,以上优选实施例的方案仅为本申请所提出的一种具体实现方案,其他根据各所述第一类缓存的第一编号和第一状态从第一类缓存中读取第一组访问地址的方式均属于本申请的保护范围。
步骤S103,根据各所述第二类缓存的第二编号和第二状态从所述第二类缓存中读取第二组访问地址,并将所述第二组访问地址存入预设缓存。
本实施例中,预设缓存为在第二类缓存之后与MIG接口适配的缓存,先根据各第二类缓存的第二编号和第二状态从所述第二类缓存中读取第二组访问地址,再将第二组访问地址存入预设缓存。
为了准确读取第二组访问地址,在本申请一些实施例中,根据各所述第二类缓存的第二编号和第二状态从所述第二类缓存中读取第二组访问地址,具体为:
根据所述第二编号的第二预设顺序依次将所述第二状态不为空的缓存加入第二初始选择队列;
在未接收到所述轮询保持信号时,根据依次从所述第二初始选择队列中读取的地址信息确定所述第二组访问地址。
本实施例中,基于轮询输出地址策略确定第二组访问地址,第二编号小的第二类缓存的优先级大于第二编号大的第二类缓存的优先级,因此第二预设顺序为从小到大,若当前第二类缓存不为空,加入第二初始选择队列,并按照编号递增优先级递减的策略选择轮询至优先级高的一路,直至轮询完毕确定第二初始选择队列。
在未接收到轮询保持信号时,根据依次从所述第二初始选择队列中读取的地址信息确定第二组访问地址。
需要说明的是,以上优选实施例的方案仅为本申请所提出的一种具体实现方案,其他根据各第二类缓存的第二编号和第二状态从第二类缓存中读取第二组访问地址的方式均属于本申请的保护范围。
为了提高DDR4的可靠性,在本申请一些实施例中,所述预设缓存的缓存队列在存在访问地址输入且不存在访问地址输出时队列计数加一,所述缓存队列在不存在访问地址输入且存在访问地址输出时队列计数减一,所述轮询保持信号是在所述队列计数大于第一预设阈值时生成的。
本实施例中,每当预设缓存中有地址输入并且没有地址读出时缓存队列时,队列计数加一;若只有地址读出时,队列计数减一,其余情况计数维持不变;当队列计数大于第一预设阈值之后则需要给出轮询保持信号。
为了进一步提高DDR4的可靠性,在本申请一些实施例中,在根据各所述第二类缓存的第二编号和第二状态从所述第二类缓存中读取第二组访问地址之前,所述方法还包括:
若存在所述预设缓存的溢出指示信号,不读取所述第二组访问地址。
步骤S104,根据MIG接口的状态和所述第二组访问地址的等待值对所述第二组访问地址进行处理。
本实施例中,MIG(Memory Interface Generation,内存接口生成)接口是一种IP核控制器的接口,在预设缓存在接收到第二组访问地址后,生成第二组访问地址的等待值,该等待值在预设缓存中存入所述第二组访问地址之后的新的访问地址时加一,根据MIG接口的状态和等待值对第二组访问地址进行处理。
为了提高DDR4的可靠性,在本申请一些实施例中,根据MIG接口的状态和所述第二组访问地址的等待值对所述第二组访问地址进行处理,具体为:
若所述MIG接口处于预设就绪状态且所述等待值大于第二预设阈值,从所述预设缓存中读取所述第二组访问地址并发送到所述MIG接口;
若所述MIG接口不处于预设就绪状态或所述等待值不大于所述第二预设阈值,停止从所述预设缓存中读取所述第二组访问地址。
本实施例中,当预设缓存检测到有地址进入,启动等待值的计数,若所述MIG接口为预设就绪状态且所述等待值大于第二预设阈值,说明可以对新的访问地址进行处理,从预设缓存中读取第二组访问地址并发送到MIG接口,由MIG接口进行处理;若所述MIG接口不处于预设就绪状态或等待值不大于第二预设阈值,说明无法对新的访问地址进行处理,停止从预设缓存中读取第二组访问地址。
通过应用以上技术方案,当检测到多通道存在访问请求时,根据上拍已应答通道的编号和各通道的编号每次确定一个待应答通道,并将与所述待应答通道对应的访问地址按照预设数量并行存入所述预设数量的第一类缓存中;根据各所述第一类缓存的第一编号和第一状态从所述第一类缓存中读取第一组访问地址,并将所述第一组访问地址存入所述预设数量的第二类缓存中;根据各所述第二类缓存的第二编号和第二状态从所述第二类缓存中读取第二组访问地址,并将所述第二组访问地址存入预设缓存;根据MIG接口的状态和所述第二组访问地址的等待值对所述第二组访问地址进行处理;其中,所述第一类缓存为与所述访问地址的分流值对应的Bank等级的缓存,所述第二类缓存为Bank Group等级的缓存,所述等待值在所述预设缓存中存入所述第二组访问地址之后的新的访问地址时加一,从而减小了整体的访问延迟,进一步提升了DDR4多用户访问的调度的效率,降低了开销成本。
为了进一步阐述本发明的技术思想,现结合具体的应用场景,对本发明的技术方案进行说明。
本发明实施例提出一种DDR4多用户访问的调度方法,如图2所示:
N通道优先级选择模块M100:用于对N通道的请求根据优先级选择一个通道应答,获取访问地址。
地址路由模块M200:用实现根据地址信息获取分流值路由至对应的bank调度模块。
Bank调度模块M300:用于将输入的地址信息经过轮询的策略控制实现调度输出。
Bank Group调度模块M400:用于将输入的地址信息经过轮询的策略控制实现调度输出,以及根据内部缓存情况做出反馈指示。
适配与调度模块M500:用于根据等待策略生成与xilinx的MIG核对接适配的地址以及命令,以及根据内部缓存情况做出反馈指示。
该方法的具体步骤如下:
步骤S100:判断是否多通道存在访问请求,若是,采用轮转应答策略在多通道中选择合适的通道应答并获取访问地址;同时需要根据给出溢出指示信号广播给每一个通道,进入步骤S200。
其中,如图3所示,多通道轮转策略包含步骤S110-S130:
步骤S110:检测到通道中有请求进入;
步骤S120:单次仅应答一个通道,若上拍未应答任何通道时,0通道的请求优先处理,通道编号越大优先级越低;当上拍通道应答与当前请求通道编号一致时,此时当前请求通道的优先级最高;当上拍通道应答与当前请求通道编号不一致时,请求通道靠近上拍应答通道的优先级高。其中,需要在参数化设置的通道数(i>=0,i<N)循坏获取每一个通道的状态,选择出通道应答后,进入步骤S130;
步骤S130:根据通道应答信号,得到该通道的访问地址,进入步骤S200。
步骤S200:地址存入缓存,包括步骤S210-S220;
步骤S210:同时监控M200内部缓存状态以及M300缓冲溢出情况,若两者皆满足条件进入步骤S220;反之于此状态保持;
步骤S220:从M200内部缓存中读出地址,如图7所示根据Sp0信息分流至M300中所对应模块的缓冲,进入步骤S300。
步骤S300:此步骤为四路并行处理,针对每一路的具体步骤如下:
将得到的地址根据图7所示的Sp1写入对应的缓存中,进入S310;
步骤S310:该步骤主要执行轮询输出地址策略,状态转换图如图4所示,系统上电之后,监控内部缓冲空状态,若为非空则加入初始选择队列中,反之跳过;按照编号递增优先级递减的策略选择轮询至优先级高的一路。
步骤S320:监控轮询指针指到的缓存状态;根据如果已经读出该缓存的地址或者M400未传入轮询保持信号;轮询指针指到下一个缓存,循环判断,读出地址信息,进入步骤S400。
步骤S400:将四路输入的地址信息存入四个不同的Bank缓存中,执行策略与步骤S310-S320一致,读出地址信息后进入步骤S500。
另外此步骤需要根据M500中缓存队列给出保持控制信号,策略如下:每当地址输入并且没有地址读出时缓存队列时,队列计数加一;若只有地址读出时,队列计数减一,其余情况计数维持不变;当队列计数大于设定的阈值之后则需要给出轮询保持信号,具体实现如图5所示。
步骤S400还包括步骤S410-S420:
步骤S410:监控M500给出的缓存溢出指示,若未溢出进入步骤S420;
步骤S420:按照上述策略读出访问地址,进入步骤S500。
步骤S500:将输入的访问地址存入M500缓存中,此步骤包含等待策略以及给出保持控制信号策略。
如图6所示,等待策略的实现如下:
若监控到有地址输入启动计数进入步骤S510;
步骤S510:等待值每拍计数+1,当等待值大于设定阈值后进入步骤S520;
步骤S520:若MIG接口的就绪,从地址缓存中读出地址发送至MIG接口;若MIG接口未就绪则停止读取地址;若检测到地址缓存为空则进入步骤S510。
本实施例中,设计多通道请求的轮转应答策略,实现高效的通道应答切换;
结合DDR4中Bank Group切换延迟最低,不同Bank切换延迟相对较低的特点,采用Bank Group间轮询、Bank之间轮询降低延迟提高吞吐,并且根据流量设置保持控制策略;
针对随机的访问地址加入一定的等待时间有效的实现较优的Bank Group切换,并且结合一定的等待策略两者提高xilinx的MIG模块的内部调度的适配度,更加利于提升访问带宽。
与本申请实施例中的一种DDR4多用户访问的调度方法相对应,本申请实施例还提出了一种DDR4多用户访问的调度设备,如图9所示,所述设备包括:
第一存入模块901,用于当检测到多通道存在访问请求时,根据上拍已应答通道的编号和各通道的编号每次确定一个待应答通道,并将与所述待应答通道对应的访问地址按照预设数量并行存入所述预设数量的第一类缓存中;
第二存入模块902,用于根据各所述第一类缓存的第一编号和第一状态从所述第一类缓存中读取第一组访问地址,并将所述第一组访问地址存入所述预设数量的第二类缓存中;
第三存入模块903,用于根据各所述第二类缓存的第二编号和第二状态从所述第二类缓存中读取第二组访问地址,并将所述第二组访问地址存入预设缓存;
处理模块904,用于根据MIG接口的状态和所述第二组访问地址的等待值对所述第二组访问地址进行处理;
其中,所述第一类缓存为与所述访问地址的分流值对应的Bank等级的缓存,所述第二类缓存为Bank Group等级的缓存,所述等待值在所述预设缓存中存入新的访问地址时加一。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种DDR4多用户访问的调度方法,其特征在于,所述方法包括:
当检测到多通道存在访问请求时,根据上拍已应答通道的编号和各通道的编号每次确定一个待应答通道,并将与所述待应答通道对应的访问地址按照预设数量并行存入所述预设数量的第一类缓存中;
根据各所述第一类缓存的第一编号和第一状态从所述第一类缓存中读取第一组访问地址,并将所述第一组访问地址存入所述预设数量的第二类缓存中;
根据各所述第二类缓存的第二编号和第二状态从所述第二类缓存中读取第二组访问地址,并将所述第二组访问地址存入预设缓存;
根据MIG接口的状态和所述第二组访问地址的等待值对所述第二组访问地址进行处理;
其中,所述第一类缓存为与所述访问地址的分流值对应的Bank等级的缓存,所述第二类缓存为Bank Group等级的缓存,所述等待值在所述预设缓存中存入所述第二组访问地址之后的新的访问地址时加一。
2.如权利要求1所述的方法,其特征在于,根据上拍已应答通道的编号和各通道的编号每次确定一个待应答通道,具体为:
若不存在所述上拍已应答通道,将第一预设编号的通道作为所述待应答通道;
若当前通道的编号与所述上拍已应答通道的编号一致,将所述当前通道作为所述待应答通道;
若当前通道的编号与所述上拍已应答通道的编号不一致,将编号小于所述上拍已应答通道的编号且与所述上拍已应答通道相邻的通道作为所述待应答通道。
3.如权利要求2所述的方法,其特征在于,在根据上拍已应答通道的编号和各通道的编号每次确定一个待应答通道之后,所述方法还包括:
基于应答所述待应答通道获取所述访问地址,并将溢出指示信号广播给各所述通道。
4.如权利要求1所述的方法,其特征在于,根据各所述第一类缓存的第一编号和第一状态从所述第一类缓存中读取第一组访问地址,具体为:
根据所述第一编号的第一预设顺序依次将所述第一状态不为空的缓存加入第一初始选择队列;
在未接收到轮询保持信号时,根据依次从所述第一初始选择队列中读取的地址信息确定所述第一组访问地址。
5.如权利要求4所述的方法,其特征在于,根据各所述第二类缓存的第二编号和第二状态从所述第二类缓存中读取第二组访问地址,具体为:
根据所述第二编号的第二预设顺序依次将所述第二状态不为空的缓存加入第二初始选择队列;
在未接收到所述轮询保持信号时,根据依次从所述第二初始选择队列中读取的地址信息确定所述第二组访问地址。
6.如权利要求4或5所述的方法,其特征在于,所述预设缓存的缓存队列在存在访问地址输入且不存在访问地址输出时队列计数加一,所述缓存队列在不存在访问地址输入且存在访问地址输出时队列计数减一,所述轮询保持信号是在所述队列计数大于第一预设阈值时生成的。
7.如权利要求5所述的方法,其特征在于,在根据各所述第二类缓存的第二编号和第二状态从所述第二类缓存中读取第二组访问地址之前,所述方法还包括:
若存在所述预设缓存的溢出指示信号,不读取所述第二组访问地址。
8.如权利要求1所述的方法,其特征在于,根据MIG接口的状态和所述第二组访问地址的等待值对所述第二组访问地址进行处理,具体为:
若所述MIG接口处于预设就绪状态且所述等待值大于第二预设阈值,从所述预设缓存中读取所述第二组访问地址并发送到所述MIG接口;
若所述MIG接口不处于预设就绪状态或所述等待值不大于所述第二预设阈值,停止从所述预设缓存中读取所述第二组访问地址。
9.一种DDR4多用户访问的调度设备,其特征在于,所述设备包括:
第一存入模块,用于当检测到多通道存在访问请求时,根据上拍已应答通道的编号和各通道的编号每次确定一个待应答通道,并将与所述待应答通道对应的访问地址按照预设数量并行存入所述预设数量的第一类缓存中;
第二存入模块,用于根据各所述第一类缓存的第一编号和第一状态从所述第一类缓存中读取第一组访问地址,并将所述第一组访问地址存入所述预设数量的第二类缓存中;
第三存入模块,用于根据各所述第二类缓存的第二编号和第二状态从所述第二类缓存中读取第二组访问地址,并将所述第二组访问地址存入预设缓存;
处理模块,用于根据MIG接口的状态和所述第二组访问地址的等待值对所述第二组访问地址进行处理;
其中,所述第一类缓存为与所述访问地址的分流值对应的Bank等级的缓存,所述第二类缓存为Bank Group等级的缓存,所述等待值在所述预设缓存中存入新的访问地址时加一。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如权利要求1-8任一项所述的DDR4多用户访问的调度方法。
CN202011617545.9A 2020-12-31 2020-12-31 一种ddr4多用户访问的调度方法和设备 Active CN112631757B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011617545.9A CN112631757B (zh) 2020-12-31 2020-12-31 一种ddr4多用户访问的调度方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011617545.9A CN112631757B (zh) 2020-12-31 2020-12-31 一种ddr4多用户访问的调度方法和设备

Publications (2)

Publication Number Publication Date
CN112631757A true CN112631757A (zh) 2021-04-09
CN112631757B CN112631757B (zh) 2021-07-13

Family

ID=75287163

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011617545.9A Active CN112631757B (zh) 2020-12-31 2020-12-31 一种ddr4多用户访问的调度方法和设备

Country Status (1)

Country Link
CN (1) CN112631757B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115292054A (zh) * 2022-10-08 2022-11-04 湖北芯擎科技有限公司 数据处理方法、装置、系统级芯片及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080235460A1 (en) * 2007-03-22 2008-09-25 Sony Computer Entertainment Inc. Apparatus and method for information processing enabling fast access to program
CN102521049A (zh) * 2011-11-18 2012-06-27 清华大学 多核间内存调度方法
CN103198856A (zh) * 2013-03-22 2013-07-10 烽火通信科技股份有限公司 一种ddr控制器及请求调度方法
US20140293726A1 (en) * 2013-04-02 2014-10-02 Mstar Semiconductor, Inc. Memory controller and associated method for generating memory address
US9299400B2 (en) * 2012-09-28 2016-03-29 Intel Corporation Distributed row hammer tracking
CN108139994A (zh) * 2016-05-28 2018-06-08 华为技术有限公司 内存访问方法及内存控制器
CN110362516A (zh) * 2019-07-23 2019-10-22 南京凯鼎电子科技有限公司 一种提高ddr存储总线利用率的方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080235460A1 (en) * 2007-03-22 2008-09-25 Sony Computer Entertainment Inc. Apparatus and method for information processing enabling fast access to program
CN102521049A (zh) * 2011-11-18 2012-06-27 清华大学 多核间内存调度方法
US9299400B2 (en) * 2012-09-28 2016-03-29 Intel Corporation Distributed row hammer tracking
CN103198856A (zh) * 2013-03-22 2013-07-10 烽火通信科技股份有限公司 一种ddr控制器及请求调度方法
US20140293726A1 (en) * 2013-04-02 2014-10-02 Mstar Semiconductor, Inc. Memory controller and associated method for generating memory address
CN108139994A (zh) * 2016-05-28 2018-06-08 华为技术有限公司 内存访问方法及内存控制器
CN110362516A (zh) * 2019-07-23 2019-10-22 南京凯鼎电子科技有限公司 一种提高ddr存储总线利用率的方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JIA ZHENG 等: "Design and Implementation of DDR4 SDRAM Controller Based on FPGA", 《2018 2ND IEEE ADVANCED INFORMATION MANAGEMENT,COMMUNICATES,ELECTRONIC AND AUTOMATION CONTROL CONFERENCE》 *
武春锋: "基于DDR4 SDRAM的光电图像实时存储技术研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115292054A (zh) * 2022-10-08 2022-11-04 湖北芯擎科技有限公司 数据处理方法、装置、系统级芯片及存储介质
CN115292054B (zh) * 2022-10-08 2022-12-06 湖北芯擎科技有限公司 数据处理方法、装置、系统级芯片及存储介质

Also Published As

Publication number Publication date
CN112631757B (zh) 2021-07-13

Similar Documents

Publication Publication Date Title
CN110109953B (zh) 一种数据查询方法、装置及设备
CN100444143C (zh) 一种内存访问仲裁装置和方法
US6415366B1 (en) Method and apparatus for load distribution across memory banks with constrained access
KR20080075910A (ko) 메모리 액세스 요청 중재
US11481342B2 (en) Data storage system data access arbitration
US9098203B1 (en) Multi-input memory command prioritization
WO2022227693A1 (zh) 用于命令分发的装置、方法、芯片、计算机设备及介质
CN112631757B (zh) 一种ddr4多用户访问的调度方法和设备
US20030217224A1 (en) Reordering requests for access to subdivided resource
US10175893B2 (en) Predictive scheduler for memory rank switching
US11221971B2 (en) QoS-class based servicing of requests for a shared resource
CN112040001A (zh) 一种基于分布式存储的请求处理方法及装置
US20220222013A1 (en) Scheduling storage system tasks to promote low latency and sustainability
US20210208880A1 (en) Processing-in-memory (pim) system and operating methods of the pim system
CN117251275A (zh) 多应用异步i/o请求的调度方法及系统、设备及介质
CN117312199A (zh) 多端口访问仲裁方法、装置、设备及存储介质
CN112925472A (zh) 请求处理方法、装置、电子设备及计算机存储介质
CN115904246A (zh) 一种基于多路ddr内存的数据读取方法及装置
CN113076070A (zh) 数据处理方法和装置
US8935489B2 (en) Adaptively time-multiplexing memory references from multiple processor cores
EP3585017A2 (en) Technologies for providing adaptive polling of packet queues
KR20230059536A (ko) 프로세스 스케줄링 방법 및 장치
US7050059B2 (en) Method for a graphics chip to access data stored in a system memory of a computer device
US10216671B2 (en) Power aware arbitration for bus access
WO2023149897A1 (en) Traffic aware adaptive precharge scheduler for efficient refresh management in dram memory controllers

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