CN1258147C - 处理器管理外部存储器的方法 - Google Patents
处理器管理外部存储器的方法 Download PDFInfo
- Publication number
- CN1258147C CN1258147C CNB031085245A CN03108524A CN1258147C CN 1258147 C CN1258147 C CN 1258147C CN B031085245 A CNB031085245 A CN B031085245A CN 03108524 A CN03108524 A CN 03108524A CN 1258147 C CN1258147 C CN 1258147C
- Authority
- CN
- China
- Prior art keywords
- address
- page
- public domain
- thesaurus
- external memory
- 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
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Machine Translation (AREA)
Abstract
一种处理器管理外部存储器的方法包含:提供一地址转换器,使用该地址转换器将该单芯片的中央处理单元指向该外部存储器的页码及该页码内的地址转换为该外部存储器相对应的实体地址,以及使用该中央处理器存取该实体地址的数据。该外部存储器中仅包含一个公用区,该方法还包含将该单芯片的中央处理单元指向该外部存储器的页码及该页码内的公用区的地址对应至该外部存储器的公用区的实体地址。
Description
技术领域
本发明提供一种存储器管理的方法,尤指一种处理器管理外部存储器的方法。
背景技术
MCS(Micro Computer System)是Intel公司对微处理器的总称,而其所开发的MCS-31/32及51/52系列的微处理器更是普遍地应用在工业界中。一般而言,微处理器只含有少量的存储器及输入输出点,以MCS-51系列的单芯片为例,它有4K位组的程序存储器、128位组的数据存储器以及32条输入输出点,MCS-52系列的微处理器则是将程序存储器增加为8K位组,以及将数据存储器增加为256位组,而MCS-31/32及51/52系列的单芯片同样是使用一个8位的中央处理单元。程序存储器是用来存放使用者所撰写的程序,属于只读存储器(ROM),数据存储器则是随机存取存储器(RAM),可供中央处理单元运行时读取或写入数据,通常是用来当程序执行时暂时存放数据的暂存器。MCS-31/32及51/52系列的微处理器都可以由外部扩充存储器,最大可扩充至64K位组。
然而在一些应用之中,使用者可能会需要撰写很大的程序码或是使用很大的阵列表,如此一来64K位组的外部扩充程序存储器仍然不够使用。存储库切换(bank switch)是一种可以将存储器大幅扩充的方法,使用单芯片上多出的接脚作为解码线来对超过64K位组的存储器作定址,若外部存储器是一个大容量的存储器装置,则多出的接脚可以直接作为地址线,若外部存储器是多个小容量的存储器装置,则多出的接脚可用来选择存储器芯片。由于单芯片最大的外部扩充存储器为64K位组,所以可用64K位组作为存储库切换的基本单位,称为一个页(page)。存储库切换最大的问题在于中断向量表(interrupt vector table)配置的地址,因为中断向量表通常会放在存储器中某个特定的地址,虽然程序在运行时可以在各个页作切换,但是当中断发生时,程序会立刻在所在页中的特定地址去寻找中断向量表,而且此时程序并无法作存储库切换,当程序找不到中断向量表时,便会产生错误。一般解决这个问题的方法,便是在每个存储库中都保留一公用区(common area),公用区中存储中断向量表、中断服务例程(interrupt serviceroutine)、通用函式库以及存储库切换所需的数据,所以不论程序运行在哪一个页,当程序发生中断时,程序都可以于所在的页中找到中断向量表继续程序的执行。
请参考图1,图1为公知外部程序存储器12配置的示意图。MCS-51/52系列的单芯片使用存储库切换的方式在外部扩充512K位组的存储器12,分为8个页,每个页为64K位组,并保留一定大小(例如:10K位组)的公用区用来存放中断向量表、中断服务例程、通用函式库以及存储库切换所需的数据。举例来说,当在第一页的程序需要呼叫第二页的程序时,会立即跳至公用区,接着存储库设定例程会设定所需存储库的页码,因为对于单芯片而言,在公用区中改变页码并不会影响任何数据的地址,接着单芯片就可以依据设定的页码存取第二页中所需的程序。于第二页的程序处理完毕之后,程序会先回到公用区中,由存储库设定例程将页码切换回原来的存储库,再回到第一页中原来程序的地址继续执行程序。
由上述可知,公知MCS-51/52系列的单芯片所提供的程序存储器,最大只能利用扩充外部程序存储器至64K位组,但是通过存储库切换的技巧,使用单芯片上多出的接脚,可以再将外部程序存储器作大幅的扩充,但是存储库切换有个缺点,就是每个存储库之中都必须保留一部分的空间作为公用区,用来存放中断向量表、中断服务例程、通用函式库以及存储库切换所需的数据,而这些数据会复制并存储在每个存储库的公用区之中,如此一来,存储器的空间便无法有效地被利用。
发明内容
因此本发明的主要目的是提供一种处理器管理外部存储器的方法,以解决上述问题。
本发明提供一种微处理器管理外部存储器以实现更多可用容量的方法,其包含:(a)提供一地址转换器;(b)使用该地址转换器将该微处理器指向的该外部存储器的一页及该页内的地址转换为该外部存储器的一实体地址,由该微处理器指向的该页的公用区被变换为该外部存储器的一公用区;以及(c)使用该微处理器存取在该外部存储器的实体地址存储的数据。
附图说明
图1为公知外部程序存储器配置的示意图。
图2为本发明单芯片连接外部程序存储器的示意图。
图3为本发明外部程序存储器配置的示意图。
附图标号说明
12外部程序存储器 20单芯片
22外部程序存储器 24地址转换器
具体实施方式
请参考图2,图2为本发明单芯片20连接外部程序存储器22的示意图。本发明在单芯片之中加设一地址转换器24,用来转换存储器的配置方式,由于存储库交换的存储器配置方式在每一个存储库之中都必须保留一公用区来存储中断向量表、中断服务例程、通用函式库以及存储库切换所需的数据,相当耗费存储器空间,本发明的单芯片20利用地址转换器24将每一存储库中的公用区都对应到同一个公用区之中,如此便可将原本存储库中公用区的空间节省下来存储其它的数据。使用地址转换器24来重新配置存储器可以更有效地利用存储器,而节省下来的存储器空间则配置于其它的存储库之中,举例来说,原本使用存储库交换只能配置成8个存储库的存储器空间,使用地址转换器将存储器重新配置之后,可以得到9个或更多存储库,多出的存储库就是节省各个存储库中公用区所得到的空间。地址转换器24将单芯片20的端口0-2(P0,P1,P2)转换为定址接脚(A23-0),而图2中的AD7-0则是用来读取存储器的数据,由于存储器在重新配置后可能会多出多个存储库,所以地址转换器24在单芯片20的内部会多使用多只虚拟的接脚来与中央处理单元沟通,用来对多出的存储库作定址。此外,于实施时,单芯片20内部另外设有一切换装置(图未示),可由使用者自行切换是否使用连接地址转换器24,以得到较佳的使用弹性。
请参考图3,图3为本发明外部程序存储器22配置的示意图。假设在存储库交换的存储器配置方式中,每一个存储库皆需要保留10K位组的存储器空间作为公用区,由于单芯片20的外部存储器22的最大可定址范围是64K位组,所以一个512K位组的存储器可分成8页,而每一页的大小为64K位组,扣掉10K位组的公用区,每一页可以使用的空间为54K位组,因为公用区重覆在每一页之中,所以浪费了10K*(8-1)=70K位组的存储器空间。为了更有效的利用存储器空间,重新配置存储器的使用空间,如图3所示,512K位组的存储器22中仅包含一个10K位组的公用区,通常配置在存储器22的最低地址,当中央处理单元在任何一个存储库中执行到公用区时,地址转换器24便会将该位置对应到这块区域,所以新的存储器配置方式每一页的最大空间为54K位组,共用分成9页,第0页至第8页各为54K位组,第9页为16位组,而第8页及第9页就是存储器重新配置后所节省下来空间。在本实施例中,单芯片20使用端口0及端口2共16只接脚以及端口1的P1.0、P1.1、P1.2三只接脚来对512K位组的存储器22作定址,通常存储库交换会使用端口0及端口2来定址一个64K位组的存储库,而端口1的三只接脚则用来作为存储库的页码选择,而本实施例则是利用这19只接脚直接对512K位组的存储器22的实体地址作定址,再通过地址转换器24将存储库交换的存储器配置方式对应至存储器22的实体地址,如此一来,不需要改变任何的指令集,中央处理单元仍然是以存储库交换的方式来存取外部的扩充存储器,但是相同大小的存储器却有多的使用空间。
对于中央处理单元而言,使用地址转换器24重新配置存储器之后,存储器变大了,因为地址转换器24将每一个存储库中公用区的地址都指向同一个区域,所以虽然单芯片只需使用19只接脚来定址512K位组的存储器,但是经由地址转换器所产生的存储库却大于8页,所以中央处理单元除了需要16只接脚作为每一页中64K位组的定址,还需要第4只或更多的接脚用来选择存储库的页码。公用区通常配置在实体存储器的最低地址,不论中央处理单元读取到任何一页中的公用区地址,都会经由地址转换器24对应到这个区域内,而其它地址的对应方式如下:
实体地址=所在页的地址-公用区结束的地址+新所在页的起始地址
其中实体地址为存储器重新分配的地址,所在页的地址为中央处理单元在该页中所存取数据的地址,公用区结束的地址视公用区的大小而定,因为一般都将公用区由存储库的起始地址开始存储,新所在页的起始地址为中央处理单元的存取所在页相对应于存储器重新配置后的所在页的起始地址。举例来说,中央处理单元读取第3页的地址12AB时,由于这个地址在公用区内,所以地址转换器24便会将这个地址对应到存储器的实体地址012AB,若中央处理单元读取的是第3页的地址A100,则由上式可知,实体地址=A100-2800+2B000=32900,所以中央处理单元读取的地址在经由地址转换器对应到存储器的实体地址为32900。此外,虽然地址转换器可能会造成地址输出时的延迟,但是如果地址转换器只转换作为页码选择的P1.0、P1.1、P1.2以及定址高地址的端口2而保持定址低地址的端口0,则这种影响是可以忽略的。
由上述可知,利用地址转换器24将中央处理单元指向外部扩充存储器22的页码及该页码内的地址转换为外部扩充存储器的实体地址,通过地址转换器24将每一页中的公用区对应到同一个公用区,所以不论存储器包含几个存储库,都只需要在存储器中存储一个公用区,而使存储器的空间作更有效的运用,而地址转换器24也会将公用区之外的页码及地址对应至新规画存储器的实体地址。在实施时,单芯片20中所包含的切换装置只有在使用存储库交换来扩充存储器时才会将接脚切换连接至地址转换器,所以不会影响单芯片20的接脚作为其它用途时的功能。
与公知技术相比较,本发明在单芯片内部设置的地址转换器以及切换装置可以让单芯片在使用存储库交换来扩充外部存储器时更有效地运用存储器的空间,尤其是当有多个存储库切换时,使用地址转换器将每一个存储库中公用区的地址对应到同一个公用区,如此就只需在存储器中存储一份公用区,可以节省许多的存储器空间。公知技术在使用存储库交换的方式扩充外部存储器时,必须在每一个存储库中都复制一份公用区的数据,相当浪费存储器的空间,而本发明则可以更有效地利用存储器的空间。
以上所述仅为本发明的优选实施例,凡依本发明权利要求书所做的均等变化与修改,皆应属本发明专利的覆盖范围。
Claims (7)
1.一种微处理器管理外部存储器以实现更多可用容量的方法,其包含:
(a)提供一地址转换器;
(b)使用该地址转换器将该微处理器指向的该外部存储器的一页及该页的地址转换为该外部存储器的一实体地址,由该微处理器指向的该页的公用区被变换为该外部存储器的一公用区;以及
(c)使用该微处理器存取在该外部存储器的该实体地址存储的数据。
2.如权利要求1所述的方法,其中该外部存储器具有一个公用区。
3.如权利要求1所述的方法,其中该外部存储器具有多个非公用区。
4.如权利要求1所述的方法,其还包含将由该微处理器的该微处理单元指向的该外部存储器的该页及该页的公用区的地址变换为该外部存储器的公用区的该实体地址。
5.如权利要求1所述的方法,其中,该微处理器处理8位的指令集。
6.如权利要求1所述的方法,其中,该处理器为MCS系列的处理器。
7.如权利要求1所述的方法,其中,该外部存储器为快闪存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031085245A CN1258147C (zh) | 2003-03-28 | 2003-03-28 | 处理器管理外部存储器的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031085245A CN1258147C (zh) | 2003-03-28 | 2003-03-28 | 处理器管理外部存储器的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1534488A CN1534488A (zh) | 2004-10-06 |
CN1258147C true CN1258147C (zh) | 2006-05-31 |
Family
ID=34283131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB031085245A Expired - Fee Related CN1258147C (zh) | 2003-03-28 | 2003-03-28 | 处理器管理外部存储器的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1258147C (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106515258B (zh) * | 2016-11-10 | 2017-12-19 | 深圳市科迈爱康科技有限公司 | 笔记本、智能终端及笔记本内容索引创建方法 |
-
2003
- 2003-03-28 CN CNB031085245A patent/CN1258147C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1534488A (zh) | 2004-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0454652A (ja) | マイクロコンピュータ | |
US5317706A (en) | Memory expansion method and apparatus in a virtual memory system | |
CN1426558A (zh) | 带有可编程存储体选择的具有不同数据缓冲区容量的多层存储体 | |
US5835973A (en) | Instruction processing unit capable of efficiently accessing the entire address space of an external memory | |
CN1258147C (zh) | 处理器管理外部存储器的方法 | |
US6023750A (en) | Microcontroller having dedicated hardware for memory address space expansion via auxilliary address signal generation | |
US20030046501A1 (en) | Method for interleaving memory | |
CN100535873C (zh) | 一种数据存储和读取的方法及数据存储装置 | |
JPH02217925A (ja) | マイクロプロセッサ | |
CN102541745B (zh) | 微控制器数据存储器的寻址方法和微控制器 | |
TWI284806B (en) | Method for managing external memory of a processor and chip for managing external memory | |
US6058467A (en) | Standard cell, 4-cycle, 8-bit microcontroller | |
CN1296837C (zh) | 存取微处理器外部存储器的方法及单芯片微处理器 | |
JPS5844263B2 (ja) | 記憶制御回路 | |
CN1261863C (zh) | 经由多工器存取储存于存储体的数据的微控制器和方法 | |
CN1267824C (zh) | 具有可重配置高速缓存的数字信号处理器 | |
TWI222597B (en) | Method for accessing external memory of a microprocessor | |
TWI241485B (en) | Microcontroller which accesses data stored in memory banks through a multiplexer | |
GB2282470A (en) | Expanded memory management for multi-tasking environment. | |
KR920003845B1 (ko) | 개인용 컴퓨터의 사용자를 위한 rom의 영역 확장 시스템 | |
US6654646B2 (en) | Enhanced memory addressing control | |
JPS6149249A (ja) | 記憶装置のインタリ−ブ制御方式 | |
JP3644614B2 (ja) | 動的中間コード処理装置 | |
KR920010960B1 (ko) | 콤퓨터 시스템의 등속호출 기억장치 | |
RU2115160C1 (ru) | Устройство динамического изменения адресов памяти |
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: 20060531 Termination date: 20200328 |
|
CF01 | Termination of patent right due to non-payment of annual fee |