CN107463520B - 一种基于可编程逻辑的双口ram防冲突方法 - Google Patents
一种基于可编程逻辑的双口ram防冲突方法 Download PDFInfo
- Publication number
- CN107463520B CN107463520B CN201710693828.3A CN201710693828A CN107463520B CN 107463520 B CN107463520 B CN 107463520B CN 201710693828 A CN201710693828 A CN 201710693828A CN 107463520 B CN107463520 B CN 107463520B
- Authority
- CN
- China
- Prior art keywords
- port ram
- double
- port
- ram
- cpu
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/368—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
- G06F13/376—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a contention resolving method, e.g. collision detection, collision avoidance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Static Random-Access Memory (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种基于可编程逻辑的双口RAM防冲突方法,应用在双口RAM从端,当从端CPU访问双口RAM时,如果主端也在访问,则通过逻辑立即切断从端的控制信号,保证主端的安全访问,并在逻辑中标记本次访问冲突,从端每次读后,都要通过读取逻辑中的标志判断是否发送了冲突,如果发生了则丢弃本次的数据,重新发起读写。本发明只需更改一侧CPU端的逻辑和软件,另一侧CPU的软硬件无需任何更改,给传统的双口防冲突机制提供了一种新的方案。
Description
技术领域
本发明属于处理器数据交换领域
背景技术
随着电子技术的发展,系统的复杂性越来越高,往往需要多个处理器协同工作来实现产品功能,双口RAM是一种广泛使用于多CPU之间数据交换的的双端口易失性存储器,一般每个双口RAM都有两个完全独立的端口,每个端口有自己的数据线、地址线、控制线。但当双口RAM两端CPU同时对一个存储单元进行读写操作时,双口RAM会产生冲突问题,导致读写数据错误。
目前采用的防冲突机制主要依赖于双口RAM芯片提供的防冲突机制,主要包括:
1)插入等待状态的防冲突机制
当双口RAM两侧端口同时对同一个地址单元进行访问时,双口RAM内部仲裁单元会将双口RAM的BUSY引脚置为有效状态,比如当对左侧的存储单元进行读写时,若右侧端口也对该存储单元进行操作,则右侧BUSY信号则会变成有效,直到左侧端口操作完成,BUSY信号转为无效状态。在使用中一般将BUSY信号与CPU端的busy信号输入管脚连接,当busy信号有效时,CPU在读写操作时插入等待状态,避免两端同时对双口RAM进行操作;
2)信号量防冲突机制
在双口RAM芯片中提供了几个特定的锁存器,以双口RAM芯片IDT70V28为例,提供了8个锁存器,整个存储区间可以分为8个区,每个区的状态由1个锁存器指示,这些锁存器用来存放令牌,用来指示当前存储区是否被占用。如果处理器想使用一段双口RAM空间,则首先需要以写寄存器的方式申请获取令牌,如果读寄存器的和写入的一致,则说明获取令牌成功,可以安全使用这段双口RAM空间,在这段时间内,双口RAM内部仲裁逻辑保证其它处理器无法获得这个令牌,直到另外一侧的CPU释放这个令牌为止。
基于双口RAM芯片提供的BUSY信号或者信号量的机制主要有以下缺点:
1)采用BUSY信号的机制,要求双口两端CPU的存储器访问机制必须支持这种插入等待机制,而实际使用过程中,很多CPU并不支持这种存储器访问等待插入机制;
2)采用信号量的机制,要求双口两端的CPU软件都必须制定好通讯协议,比如信号量的数量以及每个信号量控制的存储区域的划分,双口两端CPU往往是在不同的模块上,在一些改造项目中,经常出现一侧CPU的状态已经固定,软硬件不可更改,只能更改另一侧CPU软硬件的情况,如果在老状态下没有使用或者约定好信号量机制,则在改造过程中就无法使用基于信号量的防冲突机制。
发明内容
本发明的发明目的在于提供一种基于可编程逻辑的双口RAM防冲突方法,解决双口RAM两端CPU在操作双口RAM中,避免产生冲突。本发明的技术方案是在双口RAM一侧(从端)CPU采用基于可编程逻辑对双口RAM另一侧(主端)的控制信号进行监测,当从端访问双口RAM时,如果主端也在访问,则通过逻辑立即切断从端的控制信号,保证主端的安全访问,并在逻辑中标记本次访问冲突,从端每次读后,都要通过读取逻辑中的标志判断是否发送了冲突,如果发生了则丢弃本次的数据,重新发起读写。
本发明的发明目的通过以下技术方案实现:
一种基于可编程逻辑的双口RAM防冲突装置,应用在双口RAM从端,包含以下步骤;
1)将双口RAM主端的片选引脚上的片选信号PORT_A_CS_RAM输入非门,将非门的输出和双口RAM从端一侧的CPU输出的片选信号PORT_B_CS_CPU输入或门,或门的输出连接到双口RAM从端的片选引脚;
2)将双口RAM主端的片选引脚上的片选信号PORT_A_CS_RAM和双口RAM从端的片选引脚上的片选信号PORT_B_CS_RAM输入或非门,或非门的输出送至D触发器的clocks输入端,D触发器的S端接逻辑“0”,D触发器的R端接双口RAM从端一侧的CPU的GPIO_CLR引脚,D触发器的输出作为冲突标志连接至双口RAM从端一侧的CPU的GPIO_INTERRUPT引脚;
3)双口RAM从端一侧的CPU执行以下步骤:读取GPIO_INTERRUPT引脚来判断本次读写是否有读写冲突,若有,则通过GPIO_CLR引脚清除冲突标志后,重新发起读写操作,直到没有读写冲突,则认为数据正常读写,本次读写结束。
依据上述特征,片选信号为低电平有效。
本发明的优点是不依赖于双口RAM两侧CPU是否支持BUSY信号插入等待或者软件是否有信号量机制,也不要求硬件引出BUSY信号,对软硬件状态的要求低,特别适用于一些软硬件状态不支持双口RAM芯片提供的检测机制的场合。因该方法实现简单、方便易用,将会有广阔的市场使用空间。
附图说明
图1为实施例所示第一逻辑模块的结果示意图;
图2为实施例所示第二逻辑模块的结果示意图;
图3为实施例所示CPU的读写流程示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。
本发明提出了一种基于可编程逻辑的双口RAM防冲突方法,它弥补了传统的双口RAM防冲突方法的限制。本方案在即使双口RAM两端均没有使用双口RAM提供的检测机制的情况下,能保持双口RAM一侧(主端)软硬件均不更改,通过编写从端可编程逻辑和应用软件,可以保证双口RAM两端CPU的可靠数据交互。主要实现步骤如下:
1)在可编程逻辑中,增加以下第一逻辑模块:
将双口RAM主端的片选引脚上的片选信号PORT_A_CS_RAM输入非门,将非门的输出和双口RAM从端一侧的CPU输出的片选信号PORT_B_CS_CPU输入或门,或门的输出连接到双口RAM从端的片选引脚(片选低有效),如图1所示。当双口RAM主端一侧的CPU操作双口RAM时,通过逻辑强制双口RAM从端一侧的CPU发出的CS信号无效,因此当双口RAM从端一侧的CPU发起读写操作时,双口RAM从端的片选信号实际为无效状态,从而保证不会冲突;
2)在可编程逻辑中,增加以下第二逻辑模块:
将双口RAM主端的片选引脚上的片选信号PORT_A_CS_RAM和双口RAM从端的片选引脚上的片选信号PORT_B_CS_RAM输入或非门,或非门的输出送至D触发器的clocks输入端,D触发器的S端接逻辑“0”,D触发器的R端接双口RAM从端一侧的CPU的GPIO_CLR引脚,D触发器的输出作为冲突标志连接至双口RAM从端一侧的CPU的GPIO_INTERRUPT引脚,如图2所示。
当系统上电后,通过GPIO_CLR将冲突标志清0,当双口RAM两侧的片选信号PORT_A_CS_RAM和PORT_B_CS_RAM信号有一个有效,另一个无效,或者两个都无效时,或非门输出为0,当两侧片选信号均有效时,或非门输出为1,此时,触发器的输出Q=D,也就是冲突标志为“1”,表示有双口访问冲突。
3)双口RAM从端一侧的CPU执行以下步骤:
双口RAM从端一侧的CPU每次读写双口RAM某地址后,都会通过读取GPIO_INTERRUPT状态来判断本次读写是否有读写冲突,若有,则通过GPIO_CLR清除冲突标志后,重新对上次的地址发起读写操作,直到没有读写冲突,则认为数据正常读写,本次读写结束,如图3所示。
本发明提出了一种新的基于可编程逻辑的双口RAM防冲突方法。它非常适合于双口RAM芯片本身提供的防冲突机制不适用的场合,降低了传统方式对软硬件的要求,这种方法在双口RAM两侧CPU都没有使用BUSY信号或则信号量的情况下,只需更改一侧CPU端的逻辑和软件,另一侧CPU的软硬件无需任何更改,给传统的双口防冲突机制提供了一种新的方案。
同时,因该方法实现简单、方便易用,适用于各种多GPU双口RAM通讯的场合,推广性强,将会有广阔的市场使用空间和显著的经济效益。
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。
Claims (2)
1.一种基于可编程逻辑的双口RAM防冲突方法,应用在双口RAM从端,包含以下步骤:
1)将双口RAM主端的片选引脚上的片选信号PORT_A_CS_RAM输入非门,将非门的输出和双口RAM从端一侧的CPU输出的片选信号PORT_B_CS_CPU输入或门,或门的输出连接到双口RAM从端的片选引脚;
2)将双口RAM主端的片选引脚上的片选信号PORT_A_CS_RAM和双口RAM从端的片选引脚上的片选信号PORT_B_CS_RAM输入或非门,或非门的输出送至D触发器的clocks输入端,D触发器的S端接逻辑“0”,D触发器的R端接双口RAM从端一侧的CPU的GPIO_CLR引脚,D触发器的输出作为冲突标志连接至双口RAM从端一侧的CPU的GPIO_INTERRUPT引脚;
3)双口RAM从端一侧的CPU执行以下步骤:读取GPIO_INTERRUPT引脚来判断本次读写是否有读写冲突,若有,则通过GPIO_CLR引脚清除冲突标志后,重新发起读写操作,直到没有读写冲突,则认为数据正常读写,本次读写结束。
2.根据权利要求1所述的一种基于可编程逻辑的双口RAM防冲突方法,其特征在于所述片选信号为低电平有效。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710693828.3A CN107463520B (zh) | 2017-08-14 | 2017-08-14 | 一种基于可编程逻辑的双口ram防冲突方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710693828.3A CN107463520B (zh) | 2017-08-14 | 2017-08-14 | 一种基于可编程逻辑的双口ram防冲突方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107463520A CN107463520A (zh) | 2017-12-12 |
CN107463520B true CN107463520B (zh) | 2020-04-28 |
Family
ID=60549617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710693828.3A Active CN107463520B (zh) | 2017-08-14 | 2017-08-14 | 一种基于可编程逻辑的双口ram防冲突方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107463520B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108319557B (zh) * | 2017-12-15 | 2022-02-08 | 天津津航计算技术研究所 | 一种具有数据重传功能的数据缓存器及其读写方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101414291A (zh) * | 2007-10-17 | 2009-04-22 | 株洲南车时代电气股份有限公司 | 一种主从分布式系统和应用于该系统的并行通信方法 |
CN101655824A (zh) * | 2009-08-25 | 2010-02-24 | 北京广利核系统工程有限公司 | 一种双口ram互斥访问的实现方法 |
CN102567248A (zh) * | 2010-12-31 | 2012-07-11 | 中国航空工业集团公司第六三一研究所 | 一种避免双端口存储器访问冲突的控制电路与方法 |
CN104407996A (zh) * | 2014-11-05 | 2015-03-11 | 广西科技大学鹿山学院 | 数据总线宽度不相等的双口ram读写与仲裁控制器 |
CN105573931A (zh) * | 2015-12-05 | 2016-05-11 | 中国航空工业集团公司洛阳电光设备研究所 | 一种双口ram的访问方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5809572B2 (ja) * | 2012-01-30 | 2015-11-11 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
-
2017
- 2017-08-14 CN CN201710693828.3A patent/CN107463520B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101414291A (zh) * | 2007-10-17 | 2009-04-22 | 株洲南车时代电气股份有限公司 | 一种主从分布式系统和应用于该系统的并行通信方法 |
CN101655824A (zh) * | 2009-08-25 | 2010-02-24 | 北京广利核系统工程有限公司 | 一种双口ram互斥访问的实现方法 |
CN102567248A (zh) * | 2010-12-31 | 2012-07-11 | 中国航空工业集团公司第六三一研究所 | 一种避免双端口存储器访问冲突的控制电路与方法 |
CN104407996A (zh) * | 2014-11-05 | 2015-03-11 | 广西科技大学鹿山学院 | 数据总线宽度不相等的双口ram读写与仲裁控制器 |
CN105573931A (zh) * | 2015-12-05 | 2016-05-11 | 中国航空工业集团公司洛阳电光设备研究所 | 一种双口ram的访问方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107463520A (zh) | 2017-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US3996564A (en) | Input/output port control | |
US6209067B1 (en) | Computer system controller and method with processor write posting hold off on PCI master memory request | |
US5524235A (en) | System for arbitrating access to memory with dynamic priority assignment | |
US7263572B2 (en) | Bus bridge and data transfer method | |
US6732208B1 (en) | Low latency system bus interface for multi-master processing environments | |
CN101727414B (zh) | 用于在计算机系统中传递中断的技术 | |
EP0450233A2 (en) | Bus access for digital computer system | |
US5682551A (en) | System for checking the acceptance of I/O request to an interface using software visible instruction which provides a status signal and performs operations in response thereto | |
EP2225652B1 (en) | Read status controller | |
CN109902042B (zh) | 一种实现dsp与zynq之间高速数据传输的方法及系统 | |
US10078568B1 (en) | Debugging a computing device | |
EP0022829A1 (en) | DATA PROCESSING SYSTEM. | |
JP4874165B2 (ja) | マルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス権設定方法 | |
CN101916237A (zh) | 一种pci总线dma高速数据传输方法 | |
US20030131173A1 (en) | Method and apparatus for host messaging unit for peripheral component interconnect busmaster devices | |
US7120708B2 (en) | Readdressable virtual DMA control and status registers | |
CN206618983U (zh) | 一种基于vme总线的嵌入式工业控制板卡 | |
CN107463520B (zh) | 一种基于可编程逻辑的双口ram防冲突方法 | |
CN116578363A (zh) | 数据存储器访问冲突管理器、设备和方法 | |
CN106325377B (zh) | 外部设备扩展卡及输入输出外部设备的数据处理方法 | |
CN114281726B (zh) | 用于soc芯片的系统架构及外设通信方法 | |
KR100441996B1 (ko) | 직접 메모리 액세스 제어기 및 제어 방법 | |
EP3819776B1 (en) | Method and apparatus for aborting blocked bus access between a master controller and connected peripherals | |
KR930004903B1 (ko) | 데이타 버스를 이용한 프로세서간 병렬 데이타 통신시스팀 및 통신방법 | |
KR0129793B1 (ko) | 태그 비트를 사용한 메모리 엑세스 장치 및 방법 |
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 |