CN101950276B - 一种存储器访问装置及其程序执行方法 - Google Patents
一种存储器访问装置及其程序执行方法 Download PDFInfo
- Publication number
- CN101950276B CN101950276B CN2010102706251A CN201010270625A CN101950276B CN 101950276 B CN101950276 B CN 101950276B CN 2010102706251 A CN2010102706251 A CN 2010102706251A CN 201010270625 A CN201010270625 A CN 201010270625A CN 101950276 B CN101950276 B CN 101950276B
- Authority
- CN
- China
- Prior art keywords
- serial
- nonvolatile memory
- bus
- universal serial
- serial bus
- 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
- Read Only Memory (AREA)
Abstract
本发明公开了一种存储器访问装置及其程序执行方法,所述存储器访问装置包括串行非易失存储器读模块、串行总线选择器和串行非易失存储器控制器。通过上述存储器访问装置,CPU可以快速对串行非易失存储器内的程序进行读操作,无需再搬运到随机存储器(RAM)中执行,可以节省大量随机存储器(RAM)的空间;同时也不失对串行非易失存储器的写功能。本发明还采用高速缓冲存储器,可以加快串行存储器读取数据的速度,使整个嵌入式系统在运行过程中更加流畅。
Description
技术领域
本发明涉及嵌入式集成电路设计领域,特别是一种存储器访问装置及其程序执行方法。
背景技术
在嵌入式系统中,存储器的类型决定整个嵌入式系统的操作和性能,因此存储器的选择显的尤为重要。嵌入式系统的存储器一般分为内部存储器和外部存储器,外部存储器多数情况下为非易失存储器。非易失存储器,通常有两种类型,一种是并行非易失存储器,另一种是串行非易失存储器。使用并行非易失存储器,系统中的程序可以直接在并行非易失存储器中运行,大大节省随机存储器(RAM)空间,但其缺点是芯片引脚很多,印刷电路板布线复杂,面积大,导致成本高。而选择串行非易失存储器,可以减少芯片的引脚,而且印刷电路板布线简单,面积小,但串行非易失存储器的读写,需要软件参与读命令发送等复杂操作,程序不可以直接在串行非易失存储器中执行,故使用串行非易失存储器的嵌入式系统,需要把串行非易失存储器中的程序搬运到随机存储器(RAM)中后再运行。这样必然需要耗费更多随机存储器(RAM)空间,使成本上升。
发明内容
针对上述技术缺陷,本发明旨在提供一种存储器访问装置及其程序执行方法,使嵌入式系统中的程序可以直接在串行非易失存储器中执行,而无需被搬运到随机存储器(RAM)中执行,以减少芯片引脚,简化印刷电路板布线,减小面积,同时又不增加随机存储器(RAM)空间。
一种存储器访问装置,包括串行非易失存储器读模块、串行总线选择器和串行非易失存储器控制器。
串行非易失存储器读模块通过第一片上系统总线与片上系统总线控制器相连,并通过第一串行总线与串行总线选择器相连;串行非易失存储器控制器通过第二片上系统总线与片上系统总线控制器相连,并且通过第二串行总线与串行总线选择器相连;串行总线选择器通过第三串行总线与串行非易失存储器相连。
当需要对串行非易失存储器进行写操作时,在CPU的控制下,将串行总线选择器和串行非易失存储器控制器之间的第二串行总线与串行总线选择器和串行非易失存储器之间的第三串行总线连通。在不进行写操作时,将串行总线选择器和串行非易失存储器读模块之间的第一串行总线与串行总线选择器和串行非易失存储器之间的第三串行总线连通。
所述串行非易失存储器控制器,根据串行非易失存储器的时序,将其寄存器内的命令、地址、数据等,通过第二串行总线和第三串行总线发送给串行非易失存储器。串行非易失存储器控制器内部的寄存器全部由CPU配置,可以对串行非易失存储器进行写入、擦除等操作。
所述串行非易失存储器读模块,包括串行非易失存储器读命令产生模块、并串转换模块、串并转换模块以及配置控制模块。
其中,串行非易失存储器读命令产生模块与第一片上系统总线相连;并串转换模块输入端连接串行非易失存储器读命令产生模块,输出端与第一串行总线相连;串并转换模块输入端连接第一串行总线,输出端与第一片上系统总线相连;配置控制模块分别与非易失存储器读命令产生模块、并串转换模块、串并转换模块相连。
串行非易失存储器读命令产生模块根据串行非易失存储器的读取协议,生成并行命令地址包。
并串转换模块将并行命令地址包,转换成符合第一串行总线时序要求的串行数命令地址包。
串并转换模块根据第一串行总线的时序,将串行的数据,转换成并行的数据。
配置控制模块功能包括:配置读命令和时钟频率等,同时控制地址/命令发送周期、串并转换周期等。
作为优选,串行非易失存储器读模块还包括高速缓冲存储器,位于串行非易失存储器读命令产生模块、串并转换模块和第一片上系统总线之间,高速缓冲存储器(cache)只有读功能,不响应任何写请求,其作用是加快附近地址的数据读取速度。
一种存储器访问装置的程序执行方法,其工作步骤如下:
1)读操作
a.当系统对串行非易失存储器进行读操作时,串行总线选择器在CPU的控制下,将串行总线选择器和串行非易失存储器读模块之间的第一串行总线与串行总线选择器和串行非易失存储器之间的第三串行总线连通;
b.片上系统总线控制器通过第一片上系统总线向串行非易失存储器读模块发送地址和读请求;
c.串行非易失存储器读模块中的串行非易失存储器读命令产生模块接收到地址和读请求信号后,根据串行非易失存储器的读取协议,生成并行命令地址包,发送给并串转换模块;
d.并串转换模块把接收到的并行命令地址包转换为符合第一串行总线时序的串行命令地址包,再通过第三串行总线传输到串行非易失存储器;
e.当并串转换模块输出串行命令地址包到达配置控制模块设定周期后,串行非易失存储器开始输出数据;
f.串行非易失存储器输出的数据经过第三串行总线和第一串行总线到达串并转换模块,串并转换模块将输入的串行数据转换为并行数据,再通过第一片上系统总线到达片上系统总线控制器。
2)写操作
a.当系统对串行非易失存储器进行写操作时,串行总线选择器在CPU的控制下,将串行总线选择器和串行非易失存储器控制器之间的第二串行总线与串行总线选择器和串行非易失存储器之间的第三串行总线连通;
b.将写命令置入串行非易失存储器控制器内部寄存器;
c.启动串行非易失存储器控制器,寄存器内的写命令通过第二串行总线和第三串行总线,传送至串行非易失存储器;
d.将所要写入的地址置入串行非易失存储器控制器的寄存器中,再次启动串行非易失存储器控制器,寄存器内的地址通过第二串行总线和第三串行总线,传送至串行非易失存储器;
e.将所要写入的数据置入串行非易失存储器控制器的寄存器中,再次启动串行非易失存储器控制器,寄存器内的数据通过第二串行总线和第三串行总线,传送至串行非易失存储器。
上述的一种存储器访问装置的程序执行方法,还可进一步包括:读操作时,片上系统总线控制器通过第一片上系统总线向串行非易失存储器读模块发送的地址和读请求,首先到达串行非易失存储器读模块中的高速缓冲存储器,查询地址中的数据是否已存储在高速缓冲存储器中;若是,则直接将数据通过第一片上系统总线传输给片上系统总线控制器;若不是,高速缓冲存储器再将地址和读请求信号发送给串行非易失存储器读命令产生模块。CPU从串行非易失存储器中读取数据后,同时将所读的并行数据更新至高速缓冲存储器中。
本发明的有益效果是:通过上述存储器访问装置,CPU可以快速对串行非易失存储器内的程序进行读操作,无需再搬运到随机存储器(RAM)中执行,可以节省大量随机存储器(RAM)的空间;同时也不失对串行非易失存储器的写功能;此外,串行存储器引脚较少,在进行电路设计时,可以简化印刷电路板布线,减小面积,降低成本;本发明还采用高速缓冲存储器,可以加快串行存储器读取数据的速度,使整个嵌入式系统在运行过程中更加流畅。
附图说明
图1为存储器访问装置及外围模块结构示意图
图2为串行非易失存储器读模块结构示意图
具体实施方式:
如图1所示,一种存储器访问装置,包括串行非易失存储器读模块200、串行总线选择器300和串行非易失存储器控制器500。
其中,串行非易失存储器读模块200通过第一片上系统总线110与片上系统总线控制器100相连,并通过第一串行总线210与串行总线选择器300相连;串行非易失存储器控制器500通过第二片上系统总线120与片上系统总线控制器100相连,并且通过第二串行总线510与串行总线选择器300相连;串行总线选择器300通过第三串行总线310与串行非易失存储器400相连。
当需要对串行非易失存储器400进行写操作时,在CPU600的控制下,串行总线选择器300将第二串行总线510和第三串行总线310导通,将串行非易失存储器400和串行非易失存储器控制器500相连。在不进行写操作时,串行总线选择器300将第一串行总线210和第三串行总线310导通,将串行非易失存储器400和串行非易失存储器读模块210连接。
所述串行非易失存储器控制器500,根据串行非易失存储器400的时序,将其寄存器内的命令、地址、数据等,通过第二串行总线510和第三串行总线310发送给串行非易失存储器400。串行非易失存储器控制器400内部的寄存器全部由系统软件配置,可以对串行非易失存储器进行任意擦除、写入等操作。
如图2所示,串行非易失存储器读模块200,包括高速缓冲存储器201、串行非易失存储器读命令产生模块202、并串转换模块203、串并转换模块204以及配置控制模块205。
其中,高速缓冲存储器201与第一片上系统总线110相连,并依次连接串行非易失存储器读命令产生模块202、并串转换模块203;串并转换模块204的输出通过高速缓冲存储器201与第一片上系统总线110相连;配置控制模块205分别与高速缓冲存储器201、非易失存储器读命令产生模块202、并串转换模块203、串并转换模块204相连。
串行非易失存储器读命令产生模块202根据串行非易失存储器400的读取协议,生成并行命令地址包。
并串转换模块203将并行命令地址包,转换成符合第一串行总线210时序要求的串行数命令地址包。
串并转换模块204根据第一串行总线210的时序,将串行的数据,转换成并行的数据。
配置控制模块205功能包括:配置读命令和时钟频率等,同时控制地址/命令发送周期、串并转换周期等。
在本实施例中,上述串行总线选择器300为SPI总线选择器,串行非易失存储器400为SPI Flash;第一片上系统总线110和第二片上系统总线120选用AHB总线;第一串行总线210、第二串行总线510和第三串行总线310为SPI总线。
以下为基于SPI存储器访问装置的一种存储器访问装置的程序执行方法:
1)读操作
a.当系统需要对串行非易失存储器400中0x00200100地址读取一条32位的指令时,串行总线选择器300在CPU600的控制下,将第一串行总线210和第三串行总线310导通;
b.片上系统总控制器100经地址译码后,通过第一片上系统总线110将地址和读请求发送给串行非易失存储器读模块200;
c.串行非易失存储器读模块200中的高速缓冲存储器201查询上述地址0x00200100中的数据是否已存储在高速缓冲存储器201中,若是,则直接通过第一片上系统总线110将数据传输给片上系统总线控制器100;
d.若不是,高速缓冲存储器201向串行非易失存储器读命令产生模块202发送从地址0x00200100读取数据的请求信号;
e.串行非易失存储器读命令产生模块202接收到读请求信号后,根据串行非易失存储器400的读取协议,生成并行命令地址包:即读取令0xEB和地址0x00200100,发送给并串转换模块203;
f.并串转换模块203把接收到的并行命令地址包转换为符合第一串行总线210时序的串行命令地址包,再通过第一串行总线210和第三串行总线310传输到串行非易失存储器400;
g.当并串转换模块203输出串行命令地址包达到配置控制模块205设定周期后,串行非易失存储器400开始输出数据;
h.串行非易失存储器400输出的数据经过第三串行总线310和第一串行总线210到达串并转换模块204,串并转换模块204将输入的串行数据转换为并行数据,再通过第一片上系统总线110到达片上系统总线控制器100,同时将该并行数据更新至高速缓冲存储器201中;
i.CPU600通过片上系统总线控制器100,取得0x00200100地址中的32位数据,结束本次读操作。
2)写操作
a.当系统需要对串行非易失存储器400中0x00200200地址写入一组32位数据时,串行总线控制选择器300在CPU600的控制下,将第二串行总线510和第三串行总线310导通;
b.将写命令0x02置入串行非易失存储器控制器500配置寄存器;
c.启动串行非易失存储器控制器500,将已置入寄存器内的写命令通过第二串行总线510和第三串行总线310传送至串行非易失存储器400;
d.将地址0x00200200置入串行非易失存储器控制器500的寄存器中,再次启动串行非易失存储器控制器500,寄存器内的地址0x00200200被传送至串行非易失存储器400;
e.将需要写入的一组32位数据置入串行非易失存储器控制器500的寄存器中,再次启动串行非易失存储器控制器500,寄存器内的数据被传送至串行非易失存储器400。
Claims (9)
1.一种存储器访问装置,其特征在于:包括串行非易失存储器读模块(200)、串行总线选择器(300)和串行非易失存储器控制器(500)。串行非易失存储器读模块(200)通过第一片上系统总线(110)与片上系统总线控制器(100)相连,并通过第一串行总线(210)与串行总线选择器(300)相连;串行非易失存储器控制器(500)通过第二片上系统总线(120)与片上系统总线控制器(100)相连,并通过第二串行总线(510)与串行总线选择器(300)相连;串行总线选择器(300)通过第三串行总线(310)与串行非易失存储器(400)相连。
2.如权利要求1所述的一种存储器访问装置,其特征在于,所述串行非易失存储器控制器(500),根据串行非易失存储器(400)的时序,将其寄存器内的命令、地址、数据,通过第二串行总线(510)和第三串行总线(310)发送给串行非易失存储器(400),串行非易失存储器控制器(500)内部的寄存器全部由CPU(600)配置,可以对串行非易失存储器(400)进行写入、擦除操作。
3.如权利要求1所述的一种存储器访问装置,其特征在于:所述串行非易失存储器读模块(200)包括串行非易失存储器读命令产生模块(202)、并串转换模块(203)、串并转换模块(204)以及配置控制模块(205);其中,串行非易失存储器读命令产生模块(202)与第一片上系统总线(110)相连;并串转换模块(203)输入端连接串行非易失存储器读命令产生模块(202),输出端与第一串行总线(210)相连;串并转换模块(204)输入端连接第一串行总线(210),输出端与第一片上系统总线(110)相连;配置控制模块(205)分别与高速缓冲存储器(201)、非易失存储器读命令产生模块(202)、并串转换模块(203)、串并转换模块(204)相连。
4.如权利要求1或3所述的一种存储器访问装置,其特征在于:
串行非易失存储器读命令产生模块(202)根据串行非易失存储器(400)的读取协议,生成并行命令地址包;
并串转换模块(203)将并行的命令地址包,转换成符合第一串行总线(210)时序要求的串行命令地址包;
串并转换模块(204)根据第一串行总线(210)的时序,将串行的数据,转换成并行的数据;配置控制模块(205)功能包括:配置读命令和时钟频率,同时也控制地址/命令发送周期、串并转换周期。
5.如权利要求1或3所述的一种存储器访问装置,其特征在于,所述串行非易失存储器读模块(200)还包括高速缓冲存储器(201),其一端连接串行非易失存储器读命令产生模块(202)和串并转换模块(204),另一端连接第一片上系统总线(110)。
6.如权利要求1所述的一种存储器访问装置,其特征在于,所述串行总线选择器(300)分别通过第一串行总线(210)和第二串行总线(510)与串行非易失存储器读模块(200)和串行非易失存储器控制器(500)相连,当需要对串行非易失存储器(400)进行写操作时,串行总线选择器(300)在CPU(600)的控制下,将第二串行总线(510)和第三串行总线(310)导通,在不进行写操作时,串行总线选择器(300)将第一串行总线(210)和第三串行总线(310)导通。
7.一种存储器访问装置的程序执行方法,其特征在于,程序执行步骤包括:
1)读操作
a.当系统对串行非易失存储器(400)进行读操作时,串行总线选择器(300)在CPU(600)的控制下,将连接串行非易失存储器(400)的第三串行总线(310)和连接串行非易失存储器读模块(200)的第一串行总线(210)导通;
b.片上系统总线控制器(100)通过第一片上系统总线(110)向串行非易失存储器读模块(200)发送地址和读请求;
c.串行非易失存储器读模块(200)内的串行非易失存储器读命令产生模块(202)接收到地址和读请求信号后,根据串行非易失存储器(400)的读取协议,生成并行命令地址包,发送给并串转换模块(203);
d.并串转换模块(203)把接收到的并行命令地址包转换为符合第一串行总线(210)时序的串行命令地址包,再通过第三串行总线(310)传输到串行非易失存储器(400);
e.当并串转换模块(203)输出串行命令地址包达到配置控制模块(205)设定周期后,串行非易失存储器(400)开始输出数据;
f.串行非易失存储器(400)输出的数据经过第三串行总线(310)和第一串行总线(210)到达串并转换模块(204),串并转换模块(204)将输入的串行数据转换为并行数据,再通过第一片上系统总线(110)到达片上系统总线控制器(100);
2)写操作
a.当系统对串行非易失存储器(400)进行写操作时,串行总线选择器(300)在CPU(600)的控制下,将第三串行总线(310)和第二串行总线(510)导通;
b.将写命令置入串行非易失存储器控制器(500)内部寄存器;
c.启动串行非易失存储器控制器(500),寄存器内的写命令通过第二串行总线(510)和第三串行总线(310),传送至串行非易失存储器(400);
d.将所要写入的地址置入串行非易失存储器控制器(500)的寄存器中,再次启动串行非易失存储器控制器(500),寄存器内的地址通过第二串行总线(510)和第三串行总线(310),传送至串行非易失存储器(400);
e.将所要写入的数据置入串行非易失存储器控制器(500)的寄存器中,再次启动串行非易失存储器控制器(500),寄存器内的数据通过第二串行总线(510)和第三串行总线(310),传送至串行非易失存储器(400)。
8.如权利要求7所述的一种存储器访问装置的程序执行方法,其特征在于:在执行所述读操作时,片上系统总线控制器(100)发送的地址和读请求,首先到达串行非易失存储器读模块(200)中的高速缓冲存储器(201),查询地址中的数据是否已存储在高速缓冲存储器(201)中;若是,则直接将数据通过第一片上系统总线(110)传输给片上系统总线控制器(100);若不是,高速缓冲存储器(201)再将地址和读请求信号发送给串行非易失存储器读命令产生模块(202)。
9.如权利要求7或8所述的一种存储器访问装置的程序执行方法,其特征在于,CPU(600)从串行非易失存储器(400)中读取数据后,同时将所读的并行数据更新至高速缓冲存储器(201)中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102706251A CN101950276B (zh) | 2010-09-01 | 2010-09-01 | 一种存储器访问装置及其程序执行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102706251A CN101950276B (zh) | 2010-09-01 | 2010-09-01 | 一种存储器访问装置及其程序执行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101950276A CN101950276A (zh) | 2011-01-19 |
CN101950276B true CN101950276B (zh) | 2012-11-21 |
Family
ID=43453780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102706251A Active CN101950276B (zh) | 2010-09-01 | 2010-09-01 | 一种存储器访问装置及其程序执行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101950276B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110489169B (zh) * | 2019-08-06 | 2021-10-19 | 晶晨半导体(上海)股份有限公司 | 一种片上系统的存储器快速启动方法 |
CN114036096B (zh) * | 2021-11-04 | 2024-05-03 | 珠海一微半导体股份有限公司 | 一种基于总线接口的读控制器 |
CN116431218B (zh) * | 2023-05-10 | 2024-01-26 | 灵动微电子(苏州)有限公司 | 一种可兼容的芯片存储器控制方法、系统和控制器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1149486A (zh) * | 1996-08-29 | 1997-05-14 | 刘素丽 | 抗孕止血药及制备方法 |
CN1802640A (zh) * | 2003-05-08 | 2006-07-12 | Lds测试测量有限公司 | 控制器接口 |
US20080094894A1 (en) * | 2006-10-23 | 2008-04-24 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory and memory system |
US20090204872A1 (en) * | 2003-12-02 | 2009-08-13 | Super Talent Electronics Inc. | Command Queuing Smart Storage Transfer Manager for Striping Data to Raw-NAND Flash Modules |
-
2010
- 2010-09-01 CN CN2010102706251A patent/CN101950276B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1149486A (zh) * | 1996-08-29 | 1997-05-14 | 刘素丽 | 抗孕止血药及制备方法 |
CN1802640A (zh) * | 2003-05-08 | 2006-07-12 | Lds测试测量有限公司 | 控制器接口 |
US20090204872A1 (en) * | 2003-12-02 | 2009-08-13 | Super Talent Electronics Inc. | Command Queuing Smart Storage Transfer Manager for Striping Data to Raw-NAND Flash Modules |
US20080094894A1 (en) * | 2006-10-23 | 2008-04-24 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory and memory system |
Also Published As
Publication number | Publication date |
---|---|
CN101950276A (zh) | 2011-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104866452B (zh) | 基于fpga和tl16c554a的多串口扩展方法 | |
CN102087606B (zh) | 一种fpga配置文件更新装置 | |
CN101504692B (zh) | 一种验证和测试片上系统的系统及方法 | |
CN101344870B (zh) | 一种复用性强的fifo控制模块及其管理内存的方法 | |
CN109656851B (zh) | 一种时间确定的包括多路高速总线通道及共享接口的系统 | |
CN101000597A (zh) | 一种基于AMBA总线的嵌入式Java处理器IP核 | |
CN102591783A (zh) | 可编程存储器控制器 | |
CN109411007B (zh) | 一种基于fpga的通用闪存测试系统 | |
JPH05205005A (ja) | ロジック・シミュレーション・マシン用ホスト・インタフェース | |
CN107704413A (zh) | 一种基于vpx架构的加固型并行信息处理平台 | |
CN101950276B (zh) | 一种存储器访问装置及其程序执行方法 | |
CN106980587B (zh) | 一种通用输入输出时序处理器及时序输入输出控制方法 | |
CN201812284U (zh) | 一种存储器接口 | |
CN113961505A (zh) | 一种高性能硬件加速和算法验证系统及方法 | |
CN117093438A (zh) | 测试系统 | |
CN115080471A (zh) | 基于FPGA的nand flash接口控制器及读写方法 | |
CN102467472A (zh) | SoC芯片的BOOT启动装置和SoC芯片 | |
CN105718396A (zh) | 一种大数据主设备传输的i2c总线装置及其通讯方法 | |
CN101876960B (zh) | 一种apb总线系统及一种芯片 | |
CN102622319B (zh) | 基于mpmc的高速存储器接口ip核的数据交换系统 | |
CN203102274U (zh) | 一种高速数据传输连接器 | |
CN204706031U (zh) | 串行外设接口spi总线电路以及电子设备 | |
CN201936294U (zh) | 一种高速图像采集系统的缓存系统 | |
CN111710357B (zh) | Mcu的mtp单元读写控制电路 | |
CN112565474B (zh) | 面向分布式共享spm的批量数据传输方法 |
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 |