专利名称:一种多端口随机存储器的制作方法
技术领域:
本发明涉及存储器技术,具体为一种多端口随机存储器。该电路主要用于数据存储与交换领域,尤其是高速存储器设备数据共享系统中。
背景技术:
在测控、仪器仪表、语音信号处理和图像通信领域中往往需要多处理器分工与外部系统的通信、控制、数据采集和完成人机接口等功能。为了使CPU不致因为等待存储器读写操作的完成而无事可做,可以采取一些加速CPU和存储器之间有效传输的特殊措施。
在多机系统中,CPU之间的通信常采用以下几种方式(1)串行通信。这种方式相对简单,因为受到波特率的限制,传输速度不快,业务量大的场合得不到很好的通信效果。(2)并行通信。利用CPU的I/O功能在CPU之间增加缓冲器或锁存器来实现双机通信,通信性能较串行通信虽有所提高,但仍然达不到理想的效果。(3)利用共享式存储器。共享存储器中的一种是DMA方式,其CPU和DMA控制器交替访问存储器。DMA方式传输前,CPU要把总线控制权交给DMA控制器,由DMA控制器直接存取存储器数据,在DMA控制器结束访问存储器后,DMA控制器把总线控制权再交回给CPU,这种传输模式,CPU需要等待总线控制权。另外需要考虑的是,有些CPU不支持DMA功能。共享存储器中的另一种是利用双口 SRAM,双端口存储器是同一个存储器具有两组相互独立的读写控制线路,大大提高了通信效率,而且对CPU没有过多的要求,特别适合异种CPU之间异步高速通信。但是对于多处理器分工协作的工作方式,要求存储器具有多个端口,而双口 RAM只有两个端口,不能满足工作要求。多处理器分工协作时需要存储器数据共享,每个处理器都能读写存储器,因此要求存储器为每个CPU都提供可读写的访问端口。中国专利“多端口 RAM存储装置”(申请号00817280. 3)公开了一种多端口随机存储器技术方案。该方案主要讲述了随机存储器多个串行输入,一个串行输出的用法。每个串行输入经过串并转换,编码存储到随机存储器,输出需要经过解码,并串转换,然后由同一端口串行输出。该发明分别经过了串并转换和并串转换,虽然高效利用了端口资源,但是大大降低了存储器存储速度,与实际应用要求尚存差距。
发明内容
针对现有技术的不足,本发明拟解决的技术问题是,提供一种多端口随机存储器。该存储器可解决多处理器协同工作时,如何有效共享随机存储器的问题,具有结构简单,存储速度快,资源配制性好,便于实际应用等优点。本发明解决所述技术问题的技术解决方案是设计一种多端口随机存储器,其特征在于该存储器为具有三个端口的门阵列FPGA存储器,包括编码、外设串并转换、解码、 双口 RAM、并串转换和串并转换;编码直接与双口 RAM连接构成第一个端口,用于与CPU连接;外设串并转换经解码与双口 RAM连接构成第二个端口,用于与外设连接;并串转换和串并转换分别与双口 RAM连接构成第三个端口,用于与另一个具有三个端口的门阵列FPGA存储器连接;所述的编码、外设串并转换、解码、双口 RAM、并串转换和串并转换全部通过门阵列软件编程实现。与现有技术相比,本发明多端口随机存储器利用现场可编程逻辑门阵列FPGA设计,充分利用了 FPGA内部丰富的硬件资源和VHDL语言的灵活性。设计的存储器具有结构简单,存储速度快,系统分工明确,便于实际应用等特点。
图I是本发明多端口随机存储器及该存储器单系统的一种实施例的组成结构和工作原理框图。图2是本发明多端口随机存储器多系统的一种实施例的组成结构框图。具体实施例方式下面结合实施例及其附图对本发明进一步详细说明。本发明设计的多端口随机存储器(简称存储器,参见图1),其特征在于该存储器为具有三个端口的门阵列FPGA存储器,包括编码2、外设串并转换4、解码5、双口 RAM6、并串转换7和串并转换8 ;编码2直接与双口 RAM6连接构成第一个端口,用于与CPUl连接;夕卜设串并转换4经解码5与双口 RAM6连接构成第二个端口,用于与外设3连接;并串转换7和串并转换8分别与双口 RAM6连接构成第三个端口,用于与另一个具有三个端口的门阵列FPGA存储器连接。本发明所述的编码2、外设串并转换4、并串转换7和串并转换8相互之间没有连接关系,但其各自分别与双口 RAM6直接连接。在门阵列FPGA存储器外部连接关系上,CPUl和外设3之间没有连接关系,CPUl和外设3分别与所述门阵列FPGA存储器的相应端口相连接。本发明存储器所述的编码2、外设串并转换4、解码5、双口 RAM6、并串转换7和串并转换8全部通过门阵列软件编程实现。所述的CPUljFS 3及所述的门阵列FPGA存储器构成本发明存储器的一个单系统。CPUl是并行数据,外设3是串行数据,双口 RAM6是并行数据,单系统之间通信是串行数据。CPUljhS 3与双口 RAM6三者端口不统一,CPUl操作双口 RAM6,需要经过编码2进行端口匹配。外设3操作双口 RAM6,需要经过外设串并转换4、解码5进行端口匹配。双口RAM6所处的单系统与双口 RAM6’所处的单系统之间写数据需要经过并串转换7或串并转换8完成端口匹配。本发明存储器单系统之间能串行连接,并通过串行端口相互写数据。本发明存储器的一个单系统由CPUljFS 3和一个具有三个端口的门阵列FPGA存储器(即一个本发明所述的存储器,包括编码2、串并转换4、解码5、双口 RAM6、并串转换7和串并转换8)构成,CPUl经第一个端口与存储器连接,外设3经第二个端口与存储器连接,而第三个端口用于存储器单系统之间的连接。另一个存储器单系统由CPU1’、外设3’和一个具有三个端口的门阵列FPGA存储器(即另一个本发明所述的存储器,包括、编码2’、外设3’、串并转换4’、解码5’、双口 RAM6’、并串转换7’和串并转换8’)构成,同样,CPU1’经第一个端口与该存储器连接,外设3’经第二个端口与该存储器连接,而第三个端口用于该存储器单系统之间的连接。换言之,所述的两个存储器单系统完全相同,两者通过所述第三个端口串行连接,可以相互串行写数据。本发明虽然仅给出了两个存储器单系统连接的实施例,但容易理解,本发明存储器单系统完全适用于两个以上存储器单系统的串行连接。本发明CPUl所指的是与存储器相连接的外部处理器,用来对所设计的存储器进行读写操作。本发明存储器所述的编码2用于数 据匹配。实施例的编码2过程是门阵列FPGA处理CPUl数据的过程。CPUl的读写方式、数据结构与双口 RAM6的读写方式、数据结构不一致,需要将CPUl的数据编码成双口 RAM6的数据,然后存储到存储器中共享,例如,CPUl是8位数据宽度的单片机,双口 RAM6设计成16位数据宽度存储器,因此需要将8位的单片机数据编码成16位的数据,再存储到双口 RAM6中。本发明存储器所述的外设3所指的是与存储器相接的其他外部设备,用来对所设计的存储器进行读写操作。外设3包括的种类很多,可以通过门阵列连接到一些特殊功能的芯片,如串口通信功能的芯片,1553B通信功能的芯片以及其他功能的芯片等。本发明存储器所述的串并转换4用于端口匹配。外设3是串行数据,双口 RAM6是并行的数据,外设3访问双口 RAM6必须经过端口数据匹配,因此需要经过外设串并转换4。外设串并转换4的作用是门阵列FPGA串行接收外设3的串行数据,然后转换成并行数据的过程。本发明存储器所述的解码5用于数据匹配。解码5的作用是将外设3进行串并转换后的并行数据解码成存储到双口 RAM6中的数据。本发明存储器所述的双口 RAM6用于数据存储及数据交互。双口 RAM6作为数据存储介质用于被CPUljhS 3和本发明另一个存储器单系统三者的读写操作,是CPUljhS 3和本发明另一个存储器单系统三者的数据交互与共享的平台。本发明存储器所述的并串转换7用于数据匹配。双口 RAM6是并行的数据,双口RAM6向本发明另一个存储器单系统写数据需要经过并串转换7。实施例的并串转换7作用是将双口 RAM6的并行数据转换成本发明另一个存储器单系统串行接收的数据。本发明存储器所述的串并转换8用于数据匹配。该双口 RAM6是并行的数据,本发明另一个存储器单系统向双口 RAM6写数据需要经过串并转换8。串并转换8就是将本发明另一个存储器单系统的串行数据转换成双口 RAM6并行数据的过程。为提高单系统之间数据传输速度,本发明存储器采用了串行差分传输技术。串行差分传输就是存储器单系统之间数据传输采用了 LVDS信号传输技术的传输方式。本发明存储器单系统与单系统之间数据传输的端口设计成两线差分形式,采用LVDS的低压、差分信号传输方案,与常规的串行接口传输方案相比,具有串行传输速度快,低压差,低功耗等特点。本发明多端口随机存储器多系统是由本发明两个以上存储器单系统通过所述第三个端口串行连接组网构成的。CPUIjFS 3及本发明存储器构成一个存储器单系统,多个这样的单系统采用串行差分传输接口串行连接构成存储器多系统。例如,存储器单系统9,存储器单系统10和存储器单系统11分别都是本发明存储器单系统。存储器单系统9,存储器单系统10和存储器单系统11分别都连接在串行差分传输接口上。没有写操作时,任何一个存储器单系统都不占用串行差分传输接口,而当任何一个存储器单系统被执行写操作时,仅该存储器单系统占用串行差分接口进行写操作,并通过串行差分接口向其他存储器写出数据。例如,当存储器单系统9中的存储器被与它直连的CPU或外设写入数据时,存储器单系统9就会占用串行差分接口,并向存储器单系统10和存储器单系统11发出写操作,写操作完毕后,就立即释放串行差分接口。本发明存储器可实现多端口存储器读数据互不干扰,写数据各地址数据更新保持一致。其工作原理和过程是利用可编程逻辑门阵列FPGA设计带有串行差分接口的双口RAM,双口 RAM中的数据可以通过串行差分接口传送,多个本发明的存储器通过串行差分接口串行更新数据。本发明是将双口 RAM设计成三个端口,第一个端口设计成与CPU相连的并行接口,即图I中CPUl与编码2之间的接口,第二个端口设计成和外设相连的串行端口,即外设3与串并转换4之间的接口,第三个端口设计成可以被写入、写出的串行差分接口,即图I中并串转换7,串并转换8与另外一个本发明存储器单系统之间的接口。读操作时,处理器或外设发出读指令,读取与该处理器直接相连的双口 RAM中对应地址的数据。写操作时,处理器或外设向与其直连的双口 RAM中写数据,该被写双口 RAM占用串行差分接口,该双口 RAM通过串行差分端口向串行连线上的其他存储器的同一地址串行写入数据,写操作完毕立即释放串行差分接口。这样就保证了多个处理器协同工作时,读写存储器互不干扰,数据更新保持一致的效果,最终达到资源共享,充分发挥多CPU协同工作的优势。 本发明存储器由可编程器件FPGA实现,能方便灵活的控制双口 RAM容量的大小,数据位宽,增强了设计的灵活性和资源的可配置性。所述可编程器件FPGA的软件依据本发明所述,本领域技术人员不难具体给出。存储器间相互通信设计成串行差分接口,有效提高抗EMI能力,高速传输数据品质得到保证。以上实施例仅是对本发明高速多端口随机存储器具体应用例子,并不限制本申请权利要求。凡是在本申请权利要求技术方案上进行的修改和非本质改进的,均在本申请权利要求保护范围之内。本发明未述及之处适用于现有技术。
权利要求
1.一种多端口随机存储器,其特征在于该存储器为具有三个端口的门阵列FPGA存储器,包括编码、外设串并转换、解码、双口 RAM、并串转换和串并转换;编码直接与双口 RAM连接构成第一个端口,用于与CPU连接;外设串并转换经解码与双口 RAM连接构成第二个端口,用于与外设连接;并串转换和串并转换分别与双口 RAM连接构成第三个端口,用于与另一个具有三个端口的门阵列FPGA存储器连接;所述的编码、外设串并转换、解码、双口 RAM、并串转换和串并转换全部通过门阵列软件编程实现。
2.根据权利要求I所述的多端口随机存储器,其特征在于由CPU、外设和所述具有三个端口的门阵列FPGA存储器构成存储器单系统,CPU经第一个端口与存储器连接,外设经第二个端口与存储器连接,而第三个端口用于存储器单系统之间的连接。
3.根据权利要求I所述的多端口随机存储器,其特征在于两个存储器单系统之间通过所述第三个端口串行连接,并通过串行端口相互写数据。
4.根据权利要求I所述的多端口随机存储器,其特征在于所述存储器单系统之数据传输的端口设计成两线差分形式,采用LVDS的低压、差分信号传输方案。
5.根据权利要求I所述的多端口随机存储器,其特征在于所述两个以上所述存储器单系统通过所述第三个端口串行连接组网构成多端口随机存储器多系统。
6.根据权利要求5所述的多端口随机存储器,其特征在于所述的串行连接采用串行差分传输接口。
全文摘要
本发明公开一种多端口随机存储器,其特征在于该存储器为具有三个端口的门阵列FPGA存储器,包括编码、外设串并转换、解码、双口RAM、并串转换和串并转换;编码直接与双口RAM连接构成第一个端口,用于与CPU连接;外设串并转换经解码与双口RAM连接构成第二个端口,用于与外设连接;并串转换和串并转换分别与双口RAM连接构成第三个端口,用于与另一个具有三个端口的门阵列FPGA存储器连接;所述的编码、外设串并转换、解码、双口RAM、并串转换和串并转换全部通过门阵列软件编程实现。
文档编号G06F13/40GK102662887SQ201210133960
公开日2012年9月12日 申请日期2012年5月3日 优先权日2012年5月3日
发明者刘炳坤, 宁立革, 张世强, 张凯, 蔡勇 申请人:天津市英贝特航天科技有限公司