CN101046770A - 存储器存取系统及方法 - Google Patents
存储器存取系统及方法 Download PDFInfo
- Publication number
- CN101046770A CN101046770A CN 200610071435 CN200610071435A CN101046770A CN 101046770 A CN101046770 A CN 101046770A CN 200610071435 CN200610071435 CN 200610071435 CN 200610071435 A CN200610071435 A CN 200610071435A CN 101046770 A CN101046770 A CN 101046770A
- Authority
- CN
- China
- Prior art keywords
- space
- data
- address area
- controller
- storage
- 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.)
- Pending
Links
Images
Landscapes
- Memory System (AREA)
Abstract
一种存储器存取系统,包含:一内部存储器、一外部存储器、一微处理器以及一控制器。其中,内部存储器配置成具有一第一地址区域的一程序空间及具有一第二地址区域的一数据空间,且程序空间及数据空间分别用以储存程序代码及数据。外部存储器配置成具有一第三位址区域的一外部数据空间,且外部数据空间用以储存数据,其中第三地址区域涵盖第一及第二地址区域。微处理器用以处理程序代码及数据。控制器用以控制对程序空间、数据空间及外部数据空间的存取。
Description
技术领域
本发明涉及一种存储器存取系统及方法,特别是涉及一种可正确存取具有重迭地址的存储器区块的系统及方法。
背景技术
在开发微计算机系统的时候,常会遇到内建存储器应该设计成多大空间的问题。举例来说,若在8051芯片中放置一64K字节的存储器,而实际使用上,程序所需空间却只需10K字节时,便浪费了剩下的54K字节的空间,也增加了芯片尺寸及工艺成本。
为了有效利用内建的存储器空间,便发展出一种数据与程序代码共享存储器的方法。这种方法使用软件来规划存储器空间,使未被程序代码占用的空间可用以储存数据。因此,依储存内容的不同,内建存储器可分成程序存储器及数据存储器。
对8051来说,可支持至64K字节的数据存储器,但若将这64K字节的数据存储器都放进芯片内,将占用相当大的空间,且如上述将可能不被完全使用。因此,除了放在芯片内部的一部分存储器,还有设置在芯片外部的存储器。亦即,在设计芯片的时候,不要放进太大的存储器,使用时若需要扩充,再由芯片外部外接一外部存储器。然而,对8051的微处理器而言,不管是芯片内部或是芯片外部的存储器,其实都是包含在这64K字节的存储器地址空间内。
图1示出了一已知的存储器存取系统100,其包含一芯片110及一外部存储器120。芯片110包含一微处理器130、一多任务器140、一存储器总线150、一数据存储器总线152、一程序存储器总线154以及一内部存储器160。内部存储器160包含分别用以储存程序代码及指令的一程序空间162及一数据空间164。多任务器140将数据存储器总线152及程序存储器总线154整并为存储器总线150。外部存储器120用以储存数据,其可区分为一第一重迭空间122、一第二重迭空间124及一未重迭空间126,其中第一重迭空间122与程序空间162具有相同的地址区域,且第二重迭空间124与数据空间164具有相同的地址区域。因此,若欲存取的数据位在数据空间164的地址区域中,只可选择对数据空间164进行存取,重迭空间124因此被浪费掉。然而,因为程序空间162已经用来储存程序代码,第一重迭空间122的地址被162占用,因此不能进行数据存取。
在图1这种结构下,因为存取数据和程序空间的地址总线为共享,若因噪声或干扰所产生一些错误指令,而将数据码写入程序空间162,则程序代码将有被破坏的风险。由于第一重迭空间122与程序空间162具有相同的地址,而使微处理器130无法区分。因此,第一重迭空间122将无法用来存取数据。换句话说,若将数据储存至第一重迭空间122,可能会改掉程序空间162中的程序代码,而导致系统无法正常运作。在这种情况下,便浪费了第一重迭空间122所占用的空间。
因此,有必要提供一种可共享地址区域且储存内容不会互相干扰的存储器存取系统及方法。
发明内容
鉴于现有技术所存在的问题,本发明提供了一种存储器存取系统及方法,用以避免数据误存以及避免存储器空间的浪费。
根据本发明的一方面,提供了一种存储器存取系统。此存储器存取系统包含一内部存储器、一外部存储器、一微处理器以及一控制器。其中,内部存储器配置成具有一第一地址区域的一程序空间及具有一第二地址区域的一数据空间,而程序空间及数据空间分别用以储存程序代码及数据。外部存储器配置成具有一第三地址区域的一外部数据空间,而外部数据空间用以储存数据,其中第三地址区域包含第一及第二地址区域。微处理器用以处理程序代码及数据。控制器用以控制对程序空间、数据空间及外部数据空间的存取。
根据本发明的另一方面,提供了一种存储器存取系统。此存储器存取系统包含一内部存储器、一外部存储器、一微处理器以及一控制器。其中,内部存储器配置成具有一第一地址区域的一程序空间,用以储存程序代码。外部存储器配置成具有一第二地址区域的一外部数据空间,用以储存数据,其中第二地址区域包含第一地址区域。微处理器用以处理程序代码及数据。控制器包含一缓存器(register),用以控制对程序空间及外部数据空间的存取。
根据本发明的再一方面,提供了一种用以控制存储器存取的控制器。此控制器设置于一微计算机系统中,而此微计算机系统包含一内部存储器、一外部存储器及一微处理器。其中,内部存储器配置成具有一第一地址区域的一程序空间及具有一第二地址区域的一数据空间,分别用以储存程序代码及数据。外部存储器配置成具有一第三地址区域的一外部数据空间以储存数据,而第三地址区域包含第一及第二地址区域。控制器控制对程序空间、数据空间及外部数据空间的存取。
根据本发明的又一方面,提供了一种存取一存储器系统的方法,其中此存储器系统包含一内部存储器及一外部存储器,且内部存储器配置成具有用以储存程序代码的一第一地址区域以及具有用以储存数据的一第二地址区域,外部存储器配置成具有用以储存数据的一第三地址区域,且第三地址区域包含第一及第二地址区域。此方法包含以下步骤:微处理器传送一数据存取指令至一控制器;以及若数据存取指令的地址在第一地址区域内,控制器控制微处理器对外部存储器进行存取。
附图说明
图1示出了一已知的存储器存取系统;
图2根据本发明而示出了一存储器存取系统;
图3示出了本发明一实施例的存储器存取系统;
图4示出了本发明另一实施例的存储器存取系统;
图5根据本发明而示出了一控制器;以及
图6根据本发明而示出了存取一存储器系统的方法。
附图符号说明
100、200、300、400存储器存取系统
110、210、310、410芯片
120、220、320、420外部存储器
122、222、322、422第一重迭空间
124、224、324第二重迭空间
126、226、326、426未重迭空间
130、230、330、430 CPU
140、240、340、440多任务器
150、250、350、450存储器总线
152、252、352、452数据存储器总线
154、254、354、454程序存储器总线
160、260、360、460内部存储器
162、262、362程序空间
164、264、364数据空间
270、370、470、500控制器
510缓存器
520译码器
530、532输入端
540输出端
具体实施方式
本发明披露一种存储器存取系统及其方法。为了使本发明的叙述更加详尽与完备,可参照下列描述并结合图2至图5的说明。然以下实施例中所述的装置、系统及程序步骤,仅用以说明本发明,并非用以限制本发明的范围。
参考图2,示出了本发明一实施例的一存储器存取系统200。系统200包含一芯片210及一外部存储器220,其中芯片210可为各种已知的单芯片,而外部存储器220可为用以储存数据的各种储存装置。芯片210包含一微处理器230、一多任务器240、一存储器总线250、一数据存储器总线252、一程序存储器总线254、一内部存储器260以及一控制器270。内部存储器260包含分别用以储存程序代码及指令的一程序空间262及一数据空间264,且程序空间262的地址区域为X1,数据空间264的地址区域为X2。多任务器240将数据存储器总线252及程序存储器总线254整并为存储器总线250,通过此单一的存储器总线250而连接至内部存储器260及外部存储器220。控制器270用以控制数据或程序代码存取的路径。外部存储器220可区分为一第一重迭空间222、一第二重迭空间224及一未重迭空间226,其中第一重迭空间222与程序空间262具有相同的地址区域X1,且第二重迭空间224与数据空间264具有相同的地址区域X2。
控制器270可区分内部存储器260中的程序空间262与数据空间264。一旦区分后,若要对程序空间262存取数据,控制器270将使微处理器230无法存取程序空间262。即使微处理器230产生一个错误的地址,控制器270也会使微处理器230无法对程序空间262进行数据的存取。同样地,若要对数据空间264存取程序代码,控制器270也将控制微处理器230无法存取数据空间264。
外部存储器220具有与内部存储器260重迭的地址区域,当微处理器230对外部存储器220与内部存储器260重迭的地址区域(X1,X2)进行存取时,控制器270可识别是对外部存储器220还是内部存储器260进行存取。换言之,控制器270可区分图2所示的5个不同的空间:程序空间262、数据空间264、第一重迭空间222、第二重迭空间224及一未重迭空间226。
图3为根据本发明一实施例所示出了的一存储器存取系统300。系统300包含一芯片310及一外部存储器320,其中外部存储器320的地址区域是从0000h至ffffh。芯片310包含一微处理器330、一控制器370以及一内部存储器360,其中对内部存储器360及外部存储器320的存取是通过一数据存储器总线352、一程序存储器总线354、一多任务器340以及一存储器总线350而实现。内部存储器360包含地址区域是从0000h至1fffh的一程序空间362及地址区域是从2000h至3fffh一数据空间364。因此,外部存储器320可区分为地址区域是从0000h至1fffh的一第一重迭空间322、地址区域是从2000h至3fffh的一第二重迭空间324及地址区域是从4000h至ffffh的一未重迭空间326。
由于控制器370可区分内部存储器360中的程序空间362及数据空间364,因此微处理器330可从程序空间362存取程序代码,并且可从数据空间364、第一重迭空间322或未重迭空间326存取数据。举例来说,若一个指令将一个数据搬到地址区域为0000h至1fffh这个空间,因为有控制器370的控制,数据将会被移至第一重迭空间322,而不会移至程序空间362。另一方面,若一个指令将一个数据搬到地址区域为2000h至3fffh这个空间,数据可选择移至数据空间364,亦可选择移至第二重迭空间324。换言之,本发明的特征之一,在于使地址区域重迭的两个空间,不会产生互相干扰的情况。因此,可存取数据的全部地址区域是从0000h至ffffh,其中2000h至3fffh的地址区域包含在内部存储器360内,其余的区域则包含在外部存储器320内。与已知技术相较,本发明可使用的数据空间多了8K字节,亦即多了地址区域0000h至1fffh的第一重迭空间322。
图4为根据本发明一实施例所示出了的一存储器存取系统400。系统400包含一芯片410及一外部存储器420,其中外部存储器420的地址区域是从0000h至ffffh。芯片310包含一微处理器430、一控制器470以及一内部存储器460,其中对内部存储器460及外部存储器420的存取是通过一数据存储器总线452、一程序存储器总线454、一多任务器440以及一存储器总线450而实现。在此实施例中,由于程序代码所需空间较大,因此内部存储器460的地址区域0000h至3fffh全部配置成用以储存程序代码的程序空间。因此,外部存储器420可分为地址区域从0000h至3fffh的一第一重迭空间422及地址区域从4000h至ffffh的一未重迭空间426。由于控制器470可识别地址区域0000h至3fffh的内部存储器460是用以储存程序代码,因此微处理器430若要存取地址区域在0000h至3fffh的数据时,在控制器470的控制下,将会对第一重迭空间422进行存取,而不会改掉内部存储器460中的程序代码。换言之,内部存储器460与第一重迭空间422虽然具有重迭的地址区域,但不会互相干扰。因此,与已知技术相较,本发明可使用的空间多了16K字节,亦即多了地址区域0000h至3fffh的第一重迭空间422。
图5根据本发明而示出了一控制器500。控制器500可包含一缓存器(registor)510及一译码器(decoder)520,而微处理器(如图2的组件230、图3的组件330及图4的组件430)可通过指令对这个缓存器510进行读取及写入的操作。控制器500通过第一输入端530及第二输入端532分别接收微处理器的程序存储器地址(Program Memory Address)和数据存储器地址(DataMemory Address)。接着,由缓存器510中所储存的值以及译码器520来编译接收到的程序存储器地址及数据存储器地址,并产生用以控制程序存储器总线及数据存储器总线的相关控制讯号。最后,将这些控制讯号由输出端540输出,并藉由控制这些控制讯号达到控制硬件的操作。举例来说,内部存储器从地址0000h开始往上放置程序代码,假设需要8K字节来存放程序代码,则缓存器在固件的控制下,便会在8K字节的地方将内部存储器分为两部分。因此,硬件根据缓存器的值即可识别地址区域0000h至1fffh这8K字节的空间用以放置程序代码,如图3所示。通过此控制器500对硬件的控制,内部存储器和外部存储器的存取控制被完全切开,因此也不会有误读写的情况发生。
图6是根据本发明所示的存取一存储器系统的方法。首先,在步骤S600中,控制器将内部存储器的空间区分为用以储存数据的数据空间以及用以储存程序代码的程序空间。若微处理器欲对一数据进行存取,则程序进行至步骤S610。在步骤S610中,微处理器传送一数据存取指令至控制器。接着,在步骤S620中,控制器判断数据存取指令的地址是否在程序空间的地址区域内。若是,则程序进行至步骤S630,对外部存储器进行存取的操作。若否,则程序进行至步骤S640,由数据存取指令的地址来选择要对那一个空间进行存取。一般而言,若指令的地址不在内部存储器的地址区域内,则对外部存储器进行存取,若指令的地址在数据空间的地址区域内,则可对内部存储器的数据空间进行存取,亦可选择对外部存储器进行存取。若微处理器欲对一程序代码进行存取,则程序由步骤S600进行至步骤S650。在步骤S650中,微处理器传送一程序代码存取指令至控制器。接着,在步骤S660中,对内部存储器的程序空间进行存取的操作。
本发明中的“芯片”可为任何已知的微处理器芯片,例如Z80芯片、6502芯片、8085芯片、80386芯片、8051芯片、8751芯片或8031芯片等等。本发明中的“芯片”除了包含微处理器、存储器之外,也包含已知的标准硬件部件(components),像是非易失性(nonvolatile)装置(如一硬盘驱动(hard diskdrive,HDD))、输入单元、输入单元或逻辑运算单元等等,也可包含一个以上的微处理器。为了简化,未示出了这些标准硬件部件。
本发明中的“微处理器”包含任何处理装置(processing device),举例来说,像是包含一个CPU(微处理器,central processing unit)和/或其它处理电路系统。
本发明中的“存储器”包含随机存取存储器(RAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等等。
以上所述仅为本发明的较佳实施例而已,并非用以限定本发明的权利要求;凡其它未脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含在本发明的权利要求内。
Claims (17)
1.一种存储器存取系统,包含:
一内部存储器,配置成具有一第一地址区域的一程序空间及具有一第二地址区域的一数据空间,该程序空间及该数据空间分别用以储存程序代码及数据;
一外部存储器,配置成具有一第三地址区域的一外部数据空间,该外部数据空间用以储存数据,其中该第三地址区域包含该第一及第二地址区域;
一微处理器,用以处理该程序代码及该数据;以及
一控制器,用以控制对该程序空间、该数据空间及该外部数据空间的存取。
2.如权利要求1所述的存储器存取系统,其中该控制器包含一缓存器。
3.如权利要求1所述的存储器存取系统,其中该外部数据空间包含一第一数据空间、一第二数据空间以及一第三数据空间,其中该第一数据空间的地址区域与该第一地址区域相同,且该第二数据空间的地址区域与该第二地址区域相同。
4.如权利要求1所述的存储器存取系统,其中该微处理器通过该控制器的控制,自该程序空间取得该程序代码,且自该数据空间及该外部数据空间存取该数据。
5.如权利要求1所述的存储器存取系统,其中该内部存储器、该微处理器及该控制器是在一芯片内部,且该外部存储器是在该芯片外部。
6.如权利要求1所述的存储器存取系统,还包含一多任务器,用以输出一单一存储器总线,以连接至该内部存储器及该外部存储器。
7.一种存储器存取系统,包含:
一内部存储器,配置成具有一第一地址区域的一程序空间,用以储存程序代码;
一外部存储器,配置成具有一第二地址区域的一外部数据空间,用以储存数据,其中该第二地址区域包含该第一地址区域;
一微处理器,用以处理该程序代码及该数据;以及
一控制器,包含一缓存器,用以控制对该程序空间及该外部数据空间的存取。
8.一种用以控制存储器存取的控制器,设置于一微计算机系统中,该微计算机系统包含一内部存储器、一外部存储器及一微处理器,
其中,该内部存储器配置成具有一第一地址区域的一程序空间及具有一第二地址区域的一数据空间,分别用以储存程序代码及数据,
其中,该外部存储器配置成具有一第三地址区域的一外部数据空间以储存数据,该第三地址区域包含该第一及第二地址区域,
其中,该控制器控制对该程序空间、该数据空间及该外部数据空间的存取。
9.如权利要求8所述的控制器,其中该控制器包含一缓存器。
10.如权利要求8所述的控制器,其中该外部数据空间包含一第一数据空间、一第二数据空间以及一第三数据空间,其中该第一数据空间的地址区域与该第一地址区域相同,且该第二数据空间的地址区域与该第二地址区域相同。
11.如权利要求8所述的控制器,其中该微处理器通过该控制器的控制,自该程序空间取得该程序代码,且自该数据空间及该外部数据空间存取该数据。
12.如权利要求8所述的控制器,其中该内部存储器、该微处理器及该控制器是在一芯片内部,且该外部存储器是在该芯片外部。
13.如权利要求8所述的控制器,还包含一多任务器,用以输出一单一存储器总线,以连接至该内部存储器及该外部存储器。
14.一种存取一存储器系统的方法,该存储器系统包含一内部存储器及一外部存储器,其中该内部存储器配置成具有用以储存程序代码的一第一地址区域以及具有用以储存数据的一第二地址区域,该外部存储器配置成具有用以储存数据的一第三地址区域,且该第三地址区域包含该第一及第二地址区域,该方法包含以下步骤:
一微处理器传送一数据存取指令至一控制器;以及
若该数据存取指令的地址在该第一地址区域内,该控制器控制该微处理器对该外部存储器进行存取。
15.如权利要求14所述的方法,还包含以下步骤:
该微处理器传送一程序代码存取指令至该控制器;以及
该控制器控制该微处理器对该内部存储器的该第一地址区域进行存取。
16.如权利要求14所述的方法,其中该控制器包含一缓存器。
17.如权利要求14所述的方法,其中该内部存储器、该微处理器及该控制器是在一芯片内部,且该外部存储器是在该芯片外部。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610071435 CN101046770A (zh) | 2006-03-28 | 2006-03-28 | 存储器存取系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610071435 CN101046770A (zh) | 2006-03-28 | 2006-03-28 | 存储器存取系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101046770A true CN101046770A (zh) | 2007-10-03 |
Family
ID=38771396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200610071435 Pending CN101046770A (zh) | 2006-03-28 | 2006-03-28 | 存储器存取系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101046770A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101499956B (zh) * | 2008-01-31 | 2012-10-10 | 中兴通讯股份有限公司 | 分级缓冲区管理系统及方法 |
-
2006
- 2006-03-28 CN CN 200610071435 patent/CN101046770A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101499956B (zh) * | 2008-01-31 | 2012-10-10 | 中兴通讯股份有限公司 | 分级缓冲区管理系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7287101B2 (en) | Direct memory access using memory descriptor list | |
US20200019501A1 (en) | Phase change memory in a dual inline memory module | |
US10049005B2 (en) | Flash memory control apparatus utilizing buffer to temporarily storing valid data stored in storage plane, and control system and control method thereof | |
US8010740B2 (en) | Optimizing memory operations in an electronic storage device | |
KR101516580B1 (ko) | 컨트롤러, 이를 포함하는 데이터 저장 장치 및 데이터 저장 시스템, 및 그 방법 | |
US10678476B2 (en) | Memory system with host address translation capability and operating method thereof | |
US20110022783A1 (en) | Flash storage with increased throughput | |
US20110131366A1 (en) | Memory management unit and memory management method | |
US20110185225A1 (en) | Memory system with nonvolatile semiconductor memory | |
CN1088215C (zh) | 不按顺序执行读写指令的存储器控制器 | |
KR20120057521A (ko) | 개선된 플래시 메모리 호환성을 갖는 전자 장치 및 전자 장치의 플래시 메모리 호환성을 개선하는 방법 | |
US20180129599A1 (en) | Memory controller and memory system including the same | |
US20190163623A1 (en) | Memory system and operating method thereof | |
US20190138440A1 (en) | Memory system and operating method thereof | |
US20070041050A1 (en) | Memory management method and system | |
CN110647475A (zh) | 存储装置和包括存储装置的存储系统 | |
CN113377279A (zh) | 数据存储装置与数据处理方法 | |
US10466938B2 (en) | Non-volatile memory system using a plurality of mapping units and operating method thereof | |
EP3057100B1 (en) | Memory device and operating method of same | |
US7969781B2 (en) | Method of controlling memory system | |
US10241675B2 (en) | Method for rebuilding flash translation layer table of solid state drive | |
CN112445422A (zh) | 存储器控制器、存储装置以及存储器控制器的操作方法 | |
CN101046770A (zh) | 存储器存取系统及方法 | |
CN109933467B (zh) | 存储器系统及其操作方法 | |
US20110022782A1 (en) | Flash storage with array of attached devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |