CN100437536C - 一种多用户访问缓存方法和系统 - Google Patents
一种多用户访问缓存方法和系统 Download PDFInfo
- Publication number
- CN100437536C CN100437536C CNB200510101413XA CN200510101413A CN100437536C CN 100437536 C CN100437536 C CN 100437536C CN B200510101413X A CNB200510101413X A CN B200510101413XA CN 200510101413 A CN200510101413 A CN 200510101413A CN 100437536 C CN100437536 C CN 100437536C
- Authority
- CN
- China
- Prior art keywords
- user
- arbitration
- command word
- access
- formation
- 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.)
- Active
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种涉及电通信技术的多用户访问缓存方法和系统,采用如下步骤:A)在多用户缓存访问系统中,每个用户将其访问属性和访问缓存的地址写入相应的命令字队列,用户通过所述命令字队列向仲裁器发出仲裁请求,B)仲裁器根据仲裁算法仲裁出用户,向相应端口编号的用户传递仲裁响应信号,C)仲裁器由所述仲裁出的用户的相应命令字队列选择对应的命令字,D)所述的命令字写入一访问命令字队列;所述访问命令字队列向缓存控制器发送相应的缓存地址和缓存请求;缓存控制器向访问命令字队列发出缓存响应信号,相关的命令字访问缓存控制器。本发明便于设计且仲裁效率高。
Description
技术领域
本发明涉及电通信技术领域,尤其涉及一种多用户访问缓存方法和系统。
背景技术
对于各种大小的缓存,通常有多个用户进行访问,用户可以是读取缓存中的数据,也可以是将数据写入缓存,或者用户同时支持读取缓存和将数据写入缓存两种操作。用户访问缓存时,用户的时钟域和缓存的时钟域可能相同,也可能不相同。
在一般情况下,访问缓存系统包括缓存控制器和仲裁器,缓存控制器用于缓存接口控制部分,缓存接口控制部分主要完成将单个用户访问接口转换成符合缓存的读写时序,用来直接操作缓存。仲裁器用于用户仲裁控制部分,用户仲裁控制部分主要完成对多个用户申请访问缓存的仲裁,输出单个用户访问接口的时序。
如图1所示的访问缓存系统结构示意图,包括仲裁器1和缓存控制器2,这种只是针对同步设计的,即用户的时钟域和缓存的时钟域为同步关系,不能用于多用户异步访问缓存。
如果用户的时钟域和缓存的时钟域为异步关系,通常情况下,如图2所示,用户通过异步转换,将用户的仲裁申请提前转换为缓存的时钟域;或者,在仲裁器内部将可能存在的不同的用户的时钟域转换到缓存所在的时钟域。
该技术方案具有如下缺点:
I)这些时钟域的转换通常要根据实际的情况来具体考虑,处理异步时需要考虑每个用户的时钟和缓存控制器时钟的关系,对于用户和缓存的针对性要求高,设计起来比较麻烦。
II)尤其对于用户比较多的情况下,会使处理异步的实现极其复杂化,也容易导致出错,设计缺乏通用性。
III)由于每个用户异步访问缓存都要进行异步转换,进行异步转换时的开销会对仲裁的效率产生影响,访问控制器的接口设计不佳也会导致访问缓存的效率降低,从而影响缓存的访问带宽,因此,这种设计也会影响仲裁器的仲裁效率。
发明内容
本发明的目的在于提供一种便于设计且仲裁效率高的多用户访问缓存方法和系统,以解决现有技术中对于多用户异步转换时设计麻烦,缺乏通用性,仲裁效率低的问题。
本发明中的多用户访问缓存方法采用如下步骤:
A)在多用户缓存访问系统中,每个用户将其访问属性和访问缓存的地址写入各自的命令字队列,用户通过所述命令字队列向仲裁器发出仲裁请求;
B)仲裁器根据仲裁算法仲裁出用户,向相应端口编号的用户传递仲裁响应信号;
C)仲裁器由所述仲裁出的用户的相应命令字队列选择对应的命令字;
D)所述的命令字写入一访问命令字队列;所述访问命令字队列向缓存控制器发送相应的缓存地址和缓存请求;缓存控制器向访问命令字队列发出缓存响应信号,相关的命令字访问缓存控制器。
所述的步骤A)中,所述的命令字队列为异步先进先出队列。
所述的步骤B)中,所述的仲裁器采用公平仲裁或权重仲裁算法仲裁出用户。
所述的步骤D之前还包括如下步骤:
所述的仲裁器向访问命令字队列发送写信号。
这种多用户异步访问缓存系统,包括仲裁器和缓存控制器,还包括对应于各个用户的命令字队列,所述的命令字队列中写入有用户访问属性和访问缓存的地址,并向仲裁器发出仲裁请求;所述的仲裁器根据仲裁算法完成用户仲裁,决定相应端口编号的用户,选择对应的命令字;
该系统还包括一访问命令字队列,所述的访问命令字队列写入有被选中的用户的命令字,所述的访问命令字队列与缓存控制器通过信号交互确认访问缓存的命令字;
所述的缓存控制器接受用户的命令字访问。
所述的仲裁器包括仲裁模块、复接模块和分接模块,其中,所述的仲裁模块用于用户仲裁,以及向缓存控制器发送访问请求或向分接模块发送仲裁响应信号;所述的分接模块接收发自缓存控制器或仲裁模块的仲裁响应信号,根据仲裁出的用户的端口编号传递仲裁响应信号;所述的复接模块根据仲裁出的用户的端口编号选择相应用户的命令字队列中的命令字,向缓存控制器或访问命令字队列发送命令字。
本发明的有益效果为:在本发明中,每个用户将其访问属性和访问缓存的地址写入相应的命令字队列,通过命令字队列向仲裁器发出仲裁请求,仲裁器根据仲裁算法仲裁出用户,向相应端口编号的用户传递仲裁响应信号,仲裁器由所述用户的相应命令字队列选择对应的命令字,命令字访问缓存控制器,这样,用户访问仲裁器首先通过写入命令字到命令字队列,使用户的时钟域与仲裁器的时钟域隔离,在本发明的异步处理中,就不用考虑用户的时钟域,减少了设计因素,便于系统设计,同时,使得本发明对用户的时钟域没有针对性,也就是说,对用户来说,命令字队列的使用相当于提供了一种通用的命令字发布入口,使本发明具有通用性,通过具有一定深度的命令字队列,可使得仲裁器尽可能地取得高效率的仲裁处理,提高仲裁器的仲裁效率,因此,本发明可方便地实现多个用户端口的缓存访问,同时支持用户的缓存同步和异步访问,且保证仲裁器的仲裁效率。
在本发明中,仲裁器通过将命令字写入到一个访问命令字队列,从而保证访问缓存控制器达到最高的效率,有效地利用缓存的使用带宽。
附图说明
图1为现有技术系统结构示意图;
图2为现有技术系统结构示意图;
图3为本发明实施例1系统结构示意图;
图4为本发明基本控制流程示意图;
图5为本发明实施例1具体控制流程示意图;
图6为本发明实施例2系统结构示意图;
图7为本发明实施例2具体控制流程示意图。
具体实施方式
下面根据附图和实施例对本发明作进一步详细说明:
实施例1:
根据图3,本发明的多用户缓存访问系统包括仲裁器1、缓存控制器2和对应于各个用户的命令字队列CMD_FF,命令字队列CMD_FF为异步先进先出FIFO队列。
如图3所示,仲裁器1根据仲裁算法完成用户仲裁,决定相应端口编号的用户,选择对应的命令字;命令字队列CMD_FF中写入有用户访问属性和访问缓存的地址,并向仲裁器发出仲裁请求;缓存控制器2接受用户的命令字访问。
如图3所示,仲裁器1包括仲裁模块11、复接模块13和分接模块12,其中,仲裁模块11用于用户仲裁,以及向缓存控制器2发送仲裁请求信号Req,分接模块12接收发自缓存控制器2的仲裁响应信号Ack,根据仲裁出的用户的端口编号传递仲裁响应信号Ack,复接模块13根据仲裁出的用户的端口编号选择相应用户的命令字队列CMD_FF中的命令字,向缓存控制器2发送命令字。
如图3和图4所示,本发明的基本控制流程如下:
a)每个用户将其访问属性和访问缓存的地址写入相应的命令字队列CMD_FF,用户通过命令字队列CMD_FF向仲裁器1发出仲裁请求。
b)仲裁器1根据仲裁算法仲裁出用户,向相应端口编号的用户传递仲裁响应信号Ack,在这里,仲裁器1可采用公平仲裁算法或权重仲裁算法仲裁出用户。
c)仲裁器1由该用户的相应命令字队列CMD_FF选择对应的命令字;
d)被选择的命令字访问缓存控制器2。
如图3和图5所示,本实施例的具体控制流程如下:
a.每个用户将其访问属性R/W和访问缓存的地址Addr写入相应的命令字队列CMD_FF,访问属性为读出R或写入W,如图3所示,用户A、B、C分别通过命令字队列CMD_FF向仲裁器1发出仲裁请求信号ReqA、ReqB、ReqC。
b.仲裁模块11采用公平仲裁算法或权重仲裁算法仲裁出用户。
c.仲裁模块11向缓存控制器2发出相应仲裁请求信号Req,缓存控制器2向仲裁器1中的分接模块12发送仲裁响应信号Ack。
d.分接模块12将仲裁响应信号Ack发送至相应端口编号的用户,即向用户返回AckA、AckB或AckC。
e.仲裁器1中的复接模块13由被选中用户的相应命令字队列CMD_FF选择对应的命令字。
f.复接模块13将被选择的命令字发送至缓存控制器2,该命令字访问缓存控制器2。
实施例2:
根据图6,本发明的多用户缓存访问系统包括仲裁器1、缓存控制器2、对应于各个用户的命令字队列CMD_FF和一访问命令字队列AC_CMD_FF。
如图6所示,仲裁器1根据仲裁算法完成用户仲裁,决定相应端口编号的用户,选择对应的命令字;命令字队列CMD_FF中写入有用户访问属性和访问缓存的地址,并向仲裁器发出仲裁请求;缓存控制器2接受用户的命令字访问,命令字队列CMD_FF为异步先进先出FIFO队列,访问命令字队列AC_CMD_FF写入有被选中的用户的命令字,所述的访问命令字队列AC_CMD_FF与缓存控制器2通过信号交互确认访问缓存的命令字。
如图6所示,仲裁器1包括仲裁模块11、复接模块13和分接模块12,其中,仲裁模块11用于用户仲裁,以及向分接模块12发送仲裁响应信号Ack,分接模块12接收发自仲裁模块11的仲裁响应信号Ack,根据仲裁出的用户的端口编号传递仲裁响应信号Ack,复接模块13根据仲裁出的用户的端口编号选择相应用户的命令字队列中的命令字,向访问命令字队列AC_CMD_FF发送命令字。
如图6和图7所示,本实施例的具体控制流程如下:
1.每个用户将其访问属性R/W和访问缓存的地址Addr写入相应的命令字队列CMD_FF,访问属性为读出R或写入W,如图6所示,用户A、B、C分别通过命令字队列CMD_FF向仲裁器1发出仲裁请求信号ReqA、ReqB、ReqC。
2.仲裁模块11采用公平仲裁算法或权重仲裁算法仲裁出用户。
3.仲裁模块11向分接模块12发送仲裁响应信号Ack。
4.分接模块12将仲裁响应信号Ack发送至相应端口编号的用户,即向用户返回AckA、AckB或AckC。
5.仲裁器1中的复接模块13由被选中用户的相应命令字队列CMD_FF选择对应的命令字。
6.仲裁模块11向访问命令字队列AC_CMD_FF发送写信号Wen。
7.复接模块13将被选择的命令字写入访问命令字队列AC_CMD_FF。
8.访问命令字队列AC_CMD_FF向缓存控制器2发送相应的缓存地址Buffer_Addr和缓存请求Buffer_Req。
9.缓存控制器2向访问命令字队列AC_CMD_FF发出相应的缓存响应信号Buffer_Ack。
10.相关的命令字访问缓存控制器2。
在本发明中,上述各实施例中同样适用于多用户的缓存同步访问,而且,命令字队列CMD_FF也可为同步先进先出FIFO队列,可支持用户的缓存同步访问,其控制流程与以上所述相同或相似,此处不再赘述。
Claims (6)
1.一种多用户访问缓存方法,其特征在于,包括如下步骤:
A)在多用户缓存访问系统中,每个用户将其访问属性和访问缓存的地址写入各自的命令字队列,用户通过所述命令字队列向仲裁器发出仲裁请求;
B)仲裁器根据仲裁算法仲裁出用户,向相应端口编号的用户传递仲裁响应信号;
C)仲裁器由所述仲裁出的用户的相应命令字队列选择对应的命令字;
D)所述的命令字写入一访问命令字队列;所述访问命令字队列向缓存控制器发送相应的缓存地址和缓存请求;缓存控制器向访问命令字队列发出缓存响应信号,相关的命令字访问缓存控制器。
2.根据权利要求1所述的多用户访问缓存方法,其特征在于:所述的步骤A)中,所述的命令字队列为异步先进先出队列。
3.根据权利要求1所述的多用户访问缓存方法,其特征在于:所述的步骤B)中,所述的仲裁器采用公平或权重仲裁算法仲裁出用户。
4.根据权利要求1-3中任意一项所述的多用户访问缓存方法,其特征在于:所述的步骤D之前还包括如下步骤:
所述的仲裁器向访问命令字队列发送写信号。
5.一种多用户访问缓存系统,包括仲裁器和缓存控制器,其特征在于:
还包括对应于各个用户的命令字队列,所述的命令字队列中写入有用户访问属性和访问缓存的地址,并向仲裁器发出仲裁请求;
所述的仲裁器根据仲裁算法完成用户仲裁,决定相应端口编号的用户,选择对应的命令字;
还包括一访问命令字队列,所述的访问命令字队列写入有被选中的用户的命令字,所述的访问命令字队列与缓存控制器通过信号交互确认访问缓存的命令字;
所述的缓存控制器接受用户的命令字访问。
6.根据权利要求5所述的多用户访问缓存系统,其特征在于:所述的仲裁器包括仲裁模块、复接模块和分接模块,其中,
所述的仲裁模块用于用户仲裁,以及向缓存控制器发送访问请求或向分接模块发送仲裁响应信号;
所述的分接模块接收发自缓存控制器或仲裁模块的仲裁响应信号,根据仲裁出的用户的端口编号传递仲裁响应信号;
所述的复接模块根据仲裁出的用户的端口编号选择相应用户的命令字队列中的命令字,向缓存控制器或访问命令字队列发送命令字。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200510101413XA CN100437536C (zh) | 2005-11-12 | 2005-11-12 | 一种多用户访问缓存方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200510101413XA CN100437536C (zh) | 2005-11-12 | 2005-11-12 | 一种多用户访问缓存方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1858724A CN1858724A (zh) | 2006-11-08 |
CN100437536C true CN100437536C (zh) | 2008-11-26 |
Family
ID=37297633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200510101413XA Active CN100437536C (zh) | 2005-11-12 | 2005-11-12 | 一种多用户访问缓存方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100437536C (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101587461B (zh) * | 2008-05-20 | 2012-03-07 | 上海奇码数字信息有限公司 | 存储器访问调度装置、调度方法与存储器访问控制系统 |
CN102736997B (zh) * | 2011-04-01 | 2017-05-03 | 中兴通讯股份有限公司 | 一种片上互联总线的仲裁方法和系统 |
CN103543954B (zh) * | 2012-07-16 | 2018-03-23 | 深圳市中兴微电子技术有限公司 | 一种数据存储管理方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6601173B1 (en) * | 1999-07-06 | 2003-07-29 | Avaya Technology Corp. | Multi-user internet access and security system |
CN1460212A (zh) * | 2001-03-30 | 2003-12-03 | 三德惬瑞公司 | 使用协议无关控制模块引导和管理应用程序及业务服务器的媒体对话构架 |
CN1619499A (zh) * | 2003-11-18 | 2005-05-25 | 神达电脑股份有限公司 | 提升多任务作业环境下数据储存装置整体工作效率的方法 |
-
2005
- 2005-11-12 CN CNB200510101413XA patent/CN100437536C/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6601173B1 (en) * | 1999-07-06 | 2003-07-29 | Avaya Technology Corp. | Multi-user internet access and security system |
CN1460212A (zh) * | 2001-03-30 | 2003-12-03 | 三德惬瑞公司 | 使用协议无关控制模块引导和管理应用程序及业务服务器的媒体对话构架 |
CN1619499A (zh) * | 2003-11-18 | 2005-05-25 | 神达电脑股份有限公司 | 提升多任务作业环境下数据储存装置整体工作效率的方法 |
Non-Patent Citations (2)
Title |
---|
基于单用户数据库的多用户系统的研究与实现. 刘建华,宋志光,徐金祥.计算机工程与应用. 2000 |
基于单用户数据库的多用户系统的研究与实现. 刘建华,宋志光,徐金祥.计算机工程与应用. 2000 * |
Also Published As
Publication number | Publication date |
---|---|
CN1858724A (zh) | 2006-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103198856B (zh) | 一种ddr控制器及请求调度方法 | |
CN101504633B (zh) | 一种多通道dma控制器 | |
CN101069391A (zh) | 流式存储控制器 | |
CN101446931B (zh) | 一种实现输入输出数据一致性的系统及方法 | |
CN105335326A (zh) | 一种基于fpga的pcie转sata接口阵列的装置 | |
CN101013407A (zh) | 支持多总线多类型存储器的内存仲裁实现系统和方法 | |
CN101236774B (zh) | 单端口存储器实现多端口存储功能的装置和方法 | |
CN103927268A (zh) | 一种存储器的访问方法及装置 | |
CN105068951A (zh) | 一种具有非等时传输结构的片上系统总线 | |
CN102609380B (zh) | 基于axi总线的sdram控制器写数据快速响应方法 | |
EP2015192A1 (en) | A bus arbitration device | |
CN104991737B (zh) | 一种基于存储卡阵列架构的硬盘实现方法 | |
CN105912492A (zh) | Axi互联总线的扩展方法 | |
CN100437536C (zh) | 一种多用户访问缓存方法和系统 | |
CN101814012A (zh) | Sdram存储器结构及数据读写方法 | |
CN101198941A (zh) | 存储器控制器 | |
CN1996276A (zh) | 多处理器系统中的数据传输 | |
CN102541769B (zh) | 一种存储器接口访问控制方法及装置 | |
CN104461966B (zh) | 一种基于Nand Flash芯片的数据缓存传输方法及其控制器 | |
CN104239232A (zh) | 一种基于fpga内dpram的乒乓缓存操作结构 | |
CN102339261B (zh) | 一种ddr2sdram控制器 | |
CN106372029A (zh) | 一种基于中断的点对点片内通信模块 | |
US9390017B2 (en) | Write and read collision avoidance in single port memory devices | |
US6502173B1 (en) | System for accessing memory and method therefore | |
CN102968396A (zh) | 从Flash芯片到SRAM芯片的专用数据传输模块 |
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 |