CN100543708C - 一种处理器访问慢速存储器的控制方法 - Google Patents
一种处理器访问慢速存储器的控制方法 Download PDFInfo
- Publication number
- CN100543708C CN100543708C CNB2007100774430A CN200710077443A CN100543708C CN 100543708 C CN100543708 C CN 100543708C CN B2007100774430 A CNB2007100774430 A CN B2007100774430A CN 200710077443 A CN200710077443 A CN 200710077443A CN 100543708 C CN100543708 C CN 100543708C
- Authority
- CN
- China
- Prior art keywords
- data
- programmable logic
- processor
- logic cells
- storer
- 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
Images
Abstract
本发明公开了一种处理器访问慢速存储器的控制方法,采用可编程逻辑单元提供访问存储器所需的全部信号:地址,数据,片选等,并提供存储器信息暂存单元,以及READY信号状态指示单元,供处理器采用相应的访问命令。由于本发明引入可编程逻辑器件CPLD作为高速处理器与慢速存储器之间的中转设备,CPLD提供必要的数据发送/接收缓冲单元,以及状态指示单元,进一步保证了存储器数据访问的稳定性与可靠性,提供了存储器数据的经CPLD预处理的途径,能够满足存储器与处理器数据位宽不同的应用要求,另外CPLD内部逻辑灵活可调,扩大了处理器对接不同型号慢速存储器的应用范围。
Description
技术领域
本发明涉及存储器访问技术领域,尤其涉及一种访问慢速存储器的控制方法。
背景技术
目前处理器的工作频率在不断提高,处理器与存储器这类接口器件的数据传输速率也相应的提高。在慢速存储器与高速处理器之间数据传输速率不匹配的情况下,容易产生数据读取的可靠性低的问题。
如图1,通常情况下慢速存储器通过提供准备就绪信号(READY),指示访问过程的状态。
一般地,READY信号属于开漏(open drain)和开集(open collector)输出,需要外部加相应的上下拉电路,来实现稳定的状态切换。由于电容等效应的存在,READY信号在有效状态与无效状态切换的过程中,信号变化会比较缓慢,容易在其它关键信号如片选(CS)失效的情况下,仍然指示状态有效,这样将会加大寄存器信息读取错误的几率。
如图2所示的中国专利申请(公开号为:CN1417693A)的方案中将READY信号引入FPGA(Field Programmable Gate Array),在FPGA内部将片选CS与READY信号进行或运算,来实现对READY信号的逻辑整形,保证有效状态与无效状态的快速切换,提供给处理器相对正确的状态指示。
这种方法能降低访问寄存器错误的几率,但是,该种方法的设计电路存在以下缺点:1)只对READY信号加上了CS的判断,不能保证其它关键信号的连接状态,如READ,ADDRESS等;2)不能完全保证存储器访问的可靠性。
发明内容
本发明提供了一种处理器访问慢速存储器的控制方法,克服了现有慢速存储器访问技术中仅判断READY或仅判断READY与部分信号带来访问失败风险的缺陷,保证了慢速存储器的访问的正确性和可靠性。
为达到上述目的,本发明的技术方案是采用以下方式实现的:
本发明提出的处理器访问慢速存储器的控制方法,处理器读取存储器中的数据的处理过程如下:
11)处理器将需要读取的寄存器地址信息发送到可编程逻辑单元的地址缓存单元中;
12)可编程逻辑单元根据步骤11)中的地址信息,给可编程逻辑单元到存储器的地址总线赋值;
13)处理器发出读取控制指令,触发可编程逻辑单元向存储器发送片选和读取信号;
14)可编程逻辑单元等待接收存储器数据完成信号,并将存储器发送的数据存入可编程逻辑单元的接收数据缓存单元中,并置位信号状态指示单元;
15)处理器查询可编程逻辑单元中的信号状态指示单元,当其被置位时,从可编程逻辑单元的接收数据缓存单元中取出存储器发送的数据。
优选的,当存储器数据位宽高于处理器数据位宽时,所述步骤14)中存储器一次性把数据传送到可编程逻辑单元的接收数据缓存单元中;所述步骤15)中分多次把可编程逻辑单元的接收数据缓存单元中的数据取出。
优选的,当处理器数据位宽高于存储器数据位宽时,所述步骤14)中存储器分多次把数据传送到可编程逻辑单元的接收数据缓存单元中;所述步骤15)中一次性把可编程逻辑单元的接收数据缓存单元中的数据取出。
本发明提出的处理器访问慢速存储器的控制方法,处理器将数据写入存储器中的处理过程如下:
21)处理器将需要写入的寄存器地址信息发送到可编程逻辑单元的地址缓存单元中;
22)可编程逻辑单元根据步骤21)中的地址信息,给可编程逻辑单元到存储器的地址总线赋值;
23)处理器将数据写入可编程逻辑单元的接发送数据缓存单元中;
24)处理器发出写入控制指令,触发可编程逻辑单元向存储器发送片选和写入信号,并将可编程逻辑单元的接发送数据缓存单元中的数据放到数据总线上;
25)可编程逻辑单元等待接收存储器数据完成信号,并置位信号状态指示单元;处理器通过查询可编程逻辑单元中的信号状态指示单元确认数据传输是否完成。
优选的,当存储器数据位宽高于处理器数据位宽时,所述步骤23)中处理器分多次将数据写入可编程逻辑单元的接发送数据缓存单元中;所述步骤24)中一次性把可编程逻辑单元的接发送数据缓存单元中的数据发送到存储器。
优选的,当处理器数据位宽高于存储器数据位宽时,所述步骤23)中处理器一次性将数据写入可编程逻辑单元的接发送数据缓存单元中;所述步骤24)中分多次把可编程逻辑单元的接发送数据缓存单元中的数据发送到存储器。
优选的,所述的可编程逻辑单元为以下任一一种:现场可编程门阵列、复杂可编程逻辑器件、与非门单元组合可编程逻辑器件、集成电路组合可编程逻辑器件。
本发明采用可编程逻辑单元提供访问存储器所需的全部信号:地址,数据,片选等,并提供存储器信息暂存单元,以及READY信号状态指示单元,供处理器采用相应的访问命令。可编程逻辑单元可以选用:FPGA(FieldProgrammable Gate Array)即现场可编程门阵列或CPLD(ComplicatedProgrammable Logic Device)即复杂可编程逻辑器件)或ASIC(Application Specific Integrated Circuit)即特定用途集成电路或与非门单元组合等可编程逻辑器件。(为方便表述下文中统一表示为CPLD)
本发明的关键是:在高速处理器与慢速存储器之间引入可编程逻辑器件,由可编程逻辑器件提供数据缓存单元,将原先的处理器---存储器之间通信,扩充为处理器---CPLD---存储器通信,存储器与处理器之间不产生直接操作,存储器相关信号均由CPLD提供,既保证了访问的可靠性,又带来了信号时序可任意调整的灵活性。
与现有技术相比,本发明引入可编程逻辑器件CPLD作为高速处理器与慢速存储器之间的中转设备,CPLD提供必要的数据发送/接收缓冲单元,以及状态指示单元,进一步保证了存储器数据访问的稳定性与可靠性,提供了存储器数据的经CPLD预处理的途径,能够满足存储器与处理器数据位宽不同的应用要求,另外CPLD内部逻辑灵活可调,扩大了处理器对接不同型号慢速存储器的应用范围。
附图说明
图1是现有技术应用实例1的电路原理示意图;
图2是现有技术应用实例2的电路原理示意图;
图3是本发明方法的电路原理图;
图4是本发明实施例提供的处理器读存储器的流程图;
图5是本发明实施例提供的处理器写存储器的流程图;
图6是本发明实施例提供的处理器读不同数据位宽的存储器的流程图;
图7是本发明实施例提供的处理器写不同数据位宽的存储器的流程图。
具体实施方式
下面结合附图对本发明的技术方案实施进行详细说明。
由于FPGA与CPLD等可编程逻辑器件能够方便的与处理器和存储器进行数据传输,且CPLD内部能够提供必要的存储单元给处理器与存储器之间数据暂存。因此,本发明的核心思想是在处理器与存储器的数据传输系统中,加入中转CPLD。处理器在访问慢速存储器时,所有的存储器接口信号全部由CPLD给出,由于CPLD可编程的灵活性,全部接口信号时序均可调。慢速存储器的准备就绪信号READY引入到CPLD中,其状态由CPLD提供的状态指示单元给出并提供处理器查询用,以决定是否进行新一轮的访问存储器的周期,由于CPLD所用主时钟的频率远超过READY信号的变化频率,因此READY信号的状态变化沿得到较好的改善。
下面结合附图对技术方案的实施作进一步的详细描述:
以网络处理器INTEL IXP2400自带的ARM V5TE处理器访问INTELIXF1104以太网控制器自带的慢速存储器,FPGA/CPLD型号为LCMXO1200为例。
图3是本发明方法的电路原理图,CPLD除提供存储器所需全部接口信号外,还提供地址存储单元、数据缓存单元、状态指示单元。图4、5是本发明实施例提供的处理器读、写存储器的流程图。图6、7是对处理器读取存储器信息。
图4是本发明实施例提供的处理器读存储器的流程图,包括以下步骤:
步骤11:处理器IXP2400访问LCMXO1200状态指示单元0xC0,将0xC0清零,使状态指示单元处于未置位状态;
步骤12:处理器IXP2400启动IXF1104存储器读取流程,IXP2400发送欲读取的IXF1104寄存器地址到LCMXO1200内部地址缓存单元0xA0;
步骤13:LCMXO1200根据地址缓存单元的内容,给LCMXO1200到存储器的地址总线ADD_out[15:0]赋值;
步骤14:IXP2400发送假读IXF1104存储器命令,用于触发LCMXO1200向IXF1104发送CS_out与READ_out信号;
步骤15:LCMXO1200等待接收IXF1104存储器数据完成就绪信号READY,在READY信号经LCMXO内部逻辑的判断有效后,将IXF1104发出的数据总线DATA_out[15O0]上的数据,放入数据缓存单元0xB0,并给状态指示单元0xC0置位;
步骤16:IXP2400开始查询LCMXO1200里的状态指示单元0xC0,当0xC0未置位,表示IXF1104存储器与LCMXO1200之间数据传输未完成,IXP2400继续查询;当0xC0置位,表示IXF1104存储器与LCMXO1200之间数据传输已完成,进入步骤17;
步骤17:IXP2400通过访问LCMXO1200数据缓存单元0xB0,取出寄存在内的IXF1104存储器数据信息。IXP2400读取IXF1104存储器数据过程完成;
图5是本发明实施例提供的处理器写存储器的流程图,包括以下步骤:
步骤21:处理器IXP2400访问LCMXO1200状态指示单元0xC0,将0xC0清零,使状态指示单元处于未置位状态;
步骤22:处理器IXP2400启动IXF1104存储器写入流程,IXP2400发送欲写入的IXF1104寄存器地址到LCMXO1200内部地址缓存单元0xA0;
步骤23:LCMXO1200根据地址缓存单元的内容,给LCMXO1200到存储器的地址总线ADD_out[15O0]赋值;
步骤24:IXP2400将欲写入IXF1104存储器数据信息,写入LCMXO1200内部数据缓存单元0xB0中;
步骤25:IXP2400发送假写IXF1104存储器命令,用于触发LCMXO1200向IXF1104发送CS_out与READ_out信号,并把数据缓存单元0xB0中的数据放到数据总线上;
步骤26:LCMXO1200等待接收IXF1104存储器数据完成就绪信号READY,在READY信号经LCMXO内部逻辑的判断有效后,并给状态指示单元0xC0置位;
步骤27:IXP2400开始查询LCMXO1200里的状态指示单元0xC0,当0xC0未置位,表示IXF1104存储器与LCMXO1200之间数据传输未完成,IXP2400继续查询。当0xC0置位,表示IXF1104存储器与LCMXO1200之间数据传输已完成。IXP2400写入IXF1104存储器数据过程完成;
图6是本发明实施例提供的处理器读不同数据位宽的存储器的流程图,对于处理器访问不同数据总线位宽的存储器的流程,以16位数据位宽的IXP2400读取32位数据位宽的IXF1104为例,包括以下步骤:
步骤31:处理器IXP2400访问LCMXO1200状态指示单元0xD0,将0xD0清零,使状态指示单元处于未置位状态;
步骤32:处理器IXP2400启动IXF1104存储器读取流程,IXP2400发送欲读取的IXF1104寄存器地址到LCMXO1200内部地址缓存单元0xA0;
步骤33:LCMXO1200根据地址缓存单元的内容,给LCMXO1200到存储器的地址总线ADD_out[15:0]赋值;
步骤34:IXP2400发送假读IXF1104存储器命令,用于触发LCMXO1200向IXF1104发送CS_out与READ_out信号;
步骤35:LCMXO1200等待接收IXF1104存储器数据完成就绪信号READY,在READY信号经LCMXO内部逻辑的判断有效后,将IXF1104发出的数据总线DATA_out[31:0]上的数据,将高16位数据DATA_out[31:16]放入数据缓存单元0xB0,将低16位数据DATA_out[15:0]放入数据缓存单元0xC0并给状态指示单元0xD0置位;
步骤36:IXP2400开始查询LCMXO1200里的状态指示单元0xD0,当0xD0未置位,表示IXF1104存储器与LCMXO1200之间数据传输未完成,IXP2400继续查询;当0xD0置位,表示IXF1104存储器与LCMXO1200之间数据传输已完成,进入步骤37;
步骤37:IXP2400通过访问LCMXO1200数据缓存单元0xB0,取出寄存在内的IXFI104存储器高16位数据信息;访问LCMXO1200数据缓存单元0xC0,取出寄存在内的IXF1104存储器低16位数据信息。然后处理器将两次分别读取的16位数据组合成一个完整的32位数据。16位数据位宽的处理器IXP2400读取32位数据位宽的IXF1104内部存储器数据过程完成;
图7是本发明实施例提供的处理器写不同数据位宽的存储器的流程图,对于处理器访问不同数据总线位宽的存储器的流程,以16位数据位宽的IXP2400写入32位数据位宽的IXF1104为例,包括以下步骤:
步骤41:处理器IXP2400访问LCMXO1200状态指示单元0xD0,将0xD0清零,使状态指示单元处于未置位状态;
步骤42:处理器IXP2400启动IXF1104存储器写入流程,IXP2400发送欲写入的IXF1104寄存器地址到LCMXO1200内部地址缓存单元0xA0;
步骤43:LCMXO1200根据地址缓存单元的内容,给LCMXO1200到存储器的地址总线ADD_out[15:0]赋值;
步骤44:IXP2400将欲写入IXF1104存储器数据信息,分两次分别写入LCMXO1200内部高16位数据缓存单元0xB0与低16位数据缓存单元0xC0中;
步骤45:IXP2400发送假写IXF1104存储器命令,用于触发LCMXO1200向IXF1104发送CS_out与READ_out信号,并把高低16位数据缓存单元0xB0与0xC0中的数据放到数据总线DATA_out[31:0]上;
步骤46:LCMXO1200等待接收IXF1104存储器数据完成就绪信号READY,在READY信号经LCMXO内部逻辑的判断有效后,并给状态指示单元0xD0置位;
步骤47:IXP2400开始查询LCMXO1200里的状态指示单元0xD0,当0xD0未置位,表示IXF1104存储器与LCMXO1200之间数据传输未完成,IXP2400继续查询。当0xD0置位,表示IXF1104存储器与LCMXO1200之间数据传输已完成;16位数据位宽的处理器IXP2400写入32位数据位宽的IXF1104内部存储器数据过程完成。
以上所述仅为本发明的过程及方法实施例,并不用于限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种处理器访问慢速存储器的控制方法,其特征在于,所述处理器读取存储器中的数据的处理过程如下:
11)处理器将需要读取的寄存器地址信息发送到可编程逻辑单元的地址缓存单元中;
12)可编程逻辑单元根据步骤11)中的地址信息,给可编程逻辑单元到存储器的地址总线赋值;
13)处理器发出读取控制指令,触发可编程逻辑单元向存储器发送片选和读取信号;
14)可编程逻辑单元等待接收存储器数据完成信号,并将存储器发送的数据存入可编程逻辑单元的接收数据缓存单元中,并置位信号状态指示单元;
15)处理器查询可编程逻辑单元中的信号状态指示单元,当其被置位时,从可编程逻辑单元的接收数据缓存单元中取出存储器发送的数据。
2.根据权利要求1所述的处理器访问慢速存储器的控制方法,其特征在于,当存储器数据位宽高于处理器数据位宽时,所述步骤14)中存储器一次性把数据传送到可编程逻辑单元的接收数据缓存单元中;所述步骤15)中分多次把可编程逻辑单元的接收数据缓存单元中的数据取出。
3.根据权利要求1所述的处理器访问慢速存储器的控制方法,其特征在于,当处理器数据位宽高于存储器数据位宽时,所述步骤14)中存储器分多次把数据传送到可编程逻辑单元的接收数据缓存单元中;所述步骤15)中一次性把可编程逻辑单元的接收数据缓存单元中的数据取出。
4.根据权利要求1—3任一项所述的处理器访问慢速存储器的控制方法,其特征在于,所述的可编程逻辑单元为以下任一一种:现场可编程门阵列、复杂可编程逻辑器件、与非门单元组合可编程逻辑器件、集成电路组合可编程逻辑器件。
5.一种处理器访问慢速存储器的控制方法,其特征在于,所述处理器将数据写入存储器中的处理过程如下:
21)处理器将需要写入的寄存器地址信息发送到可编程逻辑单元的地址缓存单元中;
22)可编程逻辑单元根据步骤21)中的地址信息,给可编程逻辑单元到存储器的地址总线赋值;
23)处理器将数据写入可编程逻辑单元的接发送数据缓存单元中;
24)处理器发出写入控制指令,触发可编程逻辑单元向存储器发送片选和写入信号,并将可编程逻辑单元的接发送数据缓存单元中的数据放到数据总线上;
25)可编程逻辑单元等待接收存储器数据完成信号,并置位信号状态指示单元;处理器通过查询可编程逻辑单元中的信号状态指示单元确认数据传输是否完成。
6.根据权利要求5所述的处理器访问慢速存储器的控制方法,其特征在于,当存储器数据位宽高于处理器数据位宽时,所述步骤23)中处理器分多次将数据写入可编程逻辑单元的接发送数据缓存单元中;所述步骤24)中一次性把可编程逻辑单元的接发送数据缓存单元中的数据发送到存储器。
7.根据权利要求5所述的处理器访问慢速存储器的控制方法,其特征在于,当处理器数据位宽高于存储器数据位宽时,所述步骤23)中处理器一次性将数据写入可编程逻辑单元的接发送数据缓存单元中;所述步骤24)中分多次把可编程逻辑单元的接发送数据缓存单元中的数据发送到存储器。
8.根据权利要求5—7任一项所述的处理器访问慢速存储器的控制方法,其特征在于,所述的可编程逻辑单元为以下任一一种:现场可编程门阵列、复杂可编程逻辑器件、与非门单元组合可编程逻辑器件、集成电路组合可编程逻辑器件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100774430A CN100543708C (zh) | 2007-11-28 | 2007-11-28 | 一种处理器访问慢速存储器的控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100774430A CN100543708C (zh) | 2007-11-28 | 2007-11-28 | 一种处理器访问慢速存储器的控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101169765A CN101169765A (zh) | 2008-04-30 |
CN100543708C true CN100543708C (zh) | 2009-09-23 |
Family
ID=39390396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007100774430A Expired - Fee Related CN100543708C (zh) | 2007-11-28 | 2007-11-28 | 一种处理器访问慢速存储器的控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100543708C (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101634939B (zh) * | 2008-07-24 | 2012-07-04 | 中兴通讯股份有限公司 | 一种快速寻址装置和方法 |
CN101442387B (zh) * | 2008-12-22 | 2011-04-20 | 成都市华为赛门铁克科技有限公司 | 一种数据反压的处理方法和装置 |
CN102436432A (zh) * | 2011-09-15 | 2012-05-02 | 中兴通讯股份有限公司 | 一种嵌入式微处理器的读写方法及系统 |
CN103077123A (zh) * | 2013-01-15 | 2013-05-01 | 华为技术有限公司 | 一种数据写入和读取方法及装置 |
CN107590086B (zh) * | 2016-07-08 | 2022-05-10 | 中兴通讯股份有限公司 | 一种通讯连接装置及方法、通讯单板 |
CN109669729B (zh) * | 2018-12-26 | 2022-11-01 | 杭州迪普科技股份有限公司 | 一种处理器的启动引导方法 |
CN111104064B (zh) * | 2019-12-10 | 2023-12-01 | 深圳震有科技股份有限公司 | Flash存储器写保护处理方法及装置、计算机设备、介质 |
-
2007
- 2007-11-28 CN CNB2007100774430A patent/CN100543708C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101169765A (zh) | 2008-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100543708C (zh) | 一种处理器访问慢速存储器的控制方法 | |
CN101545933B (zh) | 用于雷电探测的远程智能升级装置及其实现方法 | |
CN101460936B (zh) | 具有分级管芯上端接的集成电路 | |
CN102831090B (zh) | 一种用于星载dsp与fpga通讯接口的地址线及其优化方法 | |
CN101923440B (zh) | 一种高速异步数据采集系统 | |
CN101694512A (zh) | 测试电路和片上系统 | |
CN104714907B (zh) | 一种pci总线转换为isa和apb总线设计方法 | |
CN102567280A (zh) | 一种基于dsp和fpga的计算机硬件平台设计方法 | |
CN110471880A (zh) | 一种基于FPGA支持Label号筛选的ARINC429总线模块及其数据传输方法 | |
CN104615386B (zh) | 一种核外高速缓存装置 | |
CN101237415A (zh) | 一种实现arp协议ip核的方法 | |
CN105138495A (zh) | 内嵌微控制器的arinc659总线控制器 | |
CN107329929B (zh) | 一种基于SoC FPGA的数据传输系统及数据传输方法 | |
CN111510363A (zh) | 基于modbus协议的从站转换装置及其控制方法 | |
CN102789424B (zh) | 基于fpga的外扩ddr2的读写方法及基于fpga的外扩ddr2颗粒存储器 | |
CN201527452U (zh) | 用于雷电探测的远程智能升级装置 | |
CN106598548A (zh) | 存储单元读写冲突的解决方法及装置 | |
CN204390227U (zh) | 计算设备扩展装置、以及可扩展的计算系统 | |
CN102722457B (zh) | 总线接口转换方法及总线桥接装置 | |
CN103970708A (zh) | 一种fpga与通用处理器之间的通信方法及系统 | |
CN106326175A (zh) | 一种ahb总线和opb总线的转换方法及桥装置 | |
CN103019972A (zh) | 一种利用总线进行通讯的方法和装置 | |
CN207218729U (zh) | 一种多网融合下的网关控制器 | |
CN110389275A (zh) | 智能电网链路接地故障录波装置及方法 | |
CN108108149A (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: 20090923 Termination date: 20161128 |
|
CF01 | Termination of patent right due to non-payment of annual fee |