CN106484525A - 嵌入式系统 - Google Patents
嵌入式系统 Download PDFInfo
- Publication number
- CN106484525A CN106484525A CN201510759662.1A CN201510759662A CN106484525A CN 106484525 A CN106484525 A CN 106484525A CN 201510759662 A CN201510759662 A CN 201510759662A CN 106484525 A CN106484525 A CN 106484525A
- Authority
- CN
- China
- Prior art keywords
- section
- overlap
- memory
- processor
- request
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1021—Hit rate improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种嵌入式系统,包含将被执行的一程序。程序被分割为多个重叠区段。嵌入式系统包括一处理器,用以请求多个重叠区段其中之一。请求的重叠区段包括即将被处理器执行的程序的一区段。嵌入式系统也包括一第一层级存储器,耦接至处理器。第一层级存储器储存少于程序的多个重叠区段。嵌入式系统更包括一存储器管理单元,耦接至处理器及第一层级存储器。存储器管理单元用以基于处理器所提供的一逻辑地址决定请求的重叠区段是否储存于第一层级存储器储存中。存储器管理单元更用以当请求的重叠区段储存于第一层级存储器储存中时,转换逻辑地址至一实体地址。实体地址指向请求的重叠区段。
Description
技术领域
本发明是有关于一种管理存储器资源的方法及装置,尤其是一种嵌入式系统。
背景技术
在计算机系统中,为了使处理器容易取得存储器储存装置,通常都使用存储器阶层,存储器阶层包括多个层级的存储器装置,不同层级的存储器装置具有不同储存大小及访问速度。为了减少访问时间,较快的存储器装置会放置在存储器阶层的较高层级中,而不是将较慢的存储器装置放置在存储器阶层的较高层级中。具有较快访问速度的存储器装置的每个位都比较慢访问速度的存储器装置的每个位还要昂贵。因此,放置在存储器阶层的较高层级的较快的存储器装置,其储存容量的大小可能少于放置在存储器阶层的较低层级的较慢的存储器装置的储存容量的大小。
举例来说,在计算机系统中,存储器阶层的最高或第一层级中可包含静态随机存取存储器(SRAM)。最高或第一层级的存储器通常称为快取。存储器阶层的第二层级中包含较慢的存储器装置,但其储存容量大小大于静态随机存取存储器的储存容量大小,例如可为动态随机存取存储器(DRAM)。第二层级的存储器通常称为主存储器。此外,存储器阶层的第三层级中包含更慢的存储器装置,在计算机系统中具有最大的储存容量大小,例如可为磁盘或固态硬盘。第三层级的存储器通常称为次要的储存装置。
为了善用存储器阶层的不同层级中的速度及储存容量大小,信息(例如数据或程序)被分割成多个区段且储存在阶层结构中。举例来说,整个可执行的程序代码被储存在存储器阶层的较低层级中。然而,一般来说,可执行的程序代码的一些区段也被储存在存储器阶层的较高层级中。举例来说,最近获最常被存取的这些区段被储存在存储器阶层的较高层级中,在存储器阶层的较高层级中具有较高的访问速度,以减少访问时间。
为了执行程序的某些功能,举例来说,处理器从存储器阶层的第一(或最高)层级第一次请求包括将要被执行的功能的区段。如果请求的区段存在于第一层级,则处理器执行包含于请求的区段中的功能。这种情况称为“击中(hit)”。如果请求的区段不存在于第一层级,则处理器从存储器阶层的较低层级中复制请求的区段至第一层级中以将被处理器执行。这种情况称为“失误(miss)”。
相似地,为了存取某些数据,举例来说,处理器从存储器阶层的第一(或最高)层级第一次请求将要被存取的数据的区段。如果请求的区段存在于第一层级,则处理器存取请求的区段。这种情况称为“击中(hit)”。如果请求的区段不存在于第一层级,则处理器从存储器阶层的较低层级中复制请求的区段至第一层级中以将被处理器存取。这种情况称为“失误(miss)”。
上述的存储器管理方案可被实施在高速缓存与主存储器之间,且这个方案被称为快取。另一个类似的方案,可被实施在主存储器与次要存储器之间管理存储器资源,被称为虚拟存储器。
发明内容
根据本发明的一实施例,提出一种嵌入式系统,包含将被执行的一程序。程序被分割为多个重叠区段。嵌入式系统包括一处理器,用以请求多个重叠区段其中之一。请求的重叠区段包括即将被处理器执行的程序的一区段。嵌入式系统也包括一第一层级存储器,耦接至处理器。第一层级存储器储存少于程序的多个重叠区段。嵌入式系统更包括一存储器管理单元,耦接至处理器及第一层级存储器。存储器管理单元用以基于处理器所提供的一逻辑地址决定请求的重叠区段是否储存于第一层级存储器储存中。存储器管理单元更用以当请求的重叠区段储存于第一层级存储器储存中时,转换逻辑地址至一实体地址。实体地址指向请求的重叠区段。
根据本发明的另一实施例,提出一种嵌入式系统,包含将被执行的一程序。程序被分割为多个重叠区段。嵌入式系统包括一处理器,用以基于一请求的重叠区段的一逻辑地址请求多个重叠区段的其中之一。请求的重叠区段包括即将被处理器执行的程序的一区段。逻辑地址包含多个逻辑区域位、多个逻辑区段位及多个逻辑偏移位元。嵌入式系统也包括一第一层级存储器,耦接至处理器。第一层级存储器储存少于程序的多个重叠区段。嵌入式系统更包括一翻译电路,耦接至处理器。翻译电路用以自处理器接收多个逻辑区段位,以及当请求的重叠区段储存于第一层级存储器储存中,则转换多个逻辑区段位至一实体地址的多个实体区段位。实体地址指向储存于第一层级存储器的请求的重叠区段。嵌入式系统更包括一比较器,耦接至处理器,以接收逻辑地址的多个逻辑区段位。比较器用以基于多个逻辑区段位提供一选择讯号。嵌入式系统更包括一多任务器,以接收逻辑地址、实体地址及选择讯号,多任务器用以基于选择讯号输出逻辑地址与实体地址其中之一。
根据本发明的另一实施例,提出一种嵌入式系统,包含将被存取的数据。数据被分割为多个重叠区段。嵌入式系统包括一处理器,用以请求多个重叠区段其中之一。请求的重叠区段包括即将被处理器存取的数据的一区段。嵌入式系统也包括一第一层级存储器,耦接至处理器。第一层级存储器储存少于数据的多个重叠区段。嵌入式系统更包括一存储器管理单元,耦接至处理器及第一层级存储器。存储器管理单元用以基于处理器所提供的一逻辑地址决定请求的重叠区段是否储存于第一层级存储器储存中,以及当请求的重叠区段储存于第一层级存储器储存中时,转换逻辑地址至一实体地址。实体地址指向请求的重叠区段。
根据本发明的另一实施例,提出一种嵌入式系统,包含将被存取的数据。数据被分割为多个重叠区段。嵌入式系统包括一处理器,用以基于一请求的重叠区段的一逻辑地址请求多个重叠区段的其中之一。请求的重叠区段包括即将被处理器存取的数据的一区段。逻辑地址包含多个逻辑区域位、多个逻辑区段位及多个逻辑偏移位元。嵌入式系统也包括一第一层级存储器,耦接至处理器。第一层级存储器储存少于数据的多个重叠区段。嵌入式系统更包括一第二层级存储器,耦接至处理器及第一层级存储器。第二层级存储器储存数据的多个重叠区段。嵌入式系统更包括一翻译电路,耦接至处理器。翻译电路用以自处理器接收多个逻辑区段位,以及当请求的重叠区段储存于第一层级存储器储存中,则转换多个逻辑区段位至一实体地址的多个实体区段位。实体地址指向储存于第一层级存储器的请求的重叠区段。嵌入式系统更包括一比较器,耦接至处理器,以接收逻辑地址的多个逻辑区段位。比较器用以基于多个逻辑区段位提供一选择讯号。嵌入式系统更包括一多任务器,以接收逻辑地址、实体地址及选择讯号,多任务器用以基于选择讯号输出逻辑地址与实体地址其中之一。
下文是配合所附图式对本发明作详细说明如下。
附图说明
图1绘示包含存储器阶层的嵌入式系统的示意图。
图2A绘示存储器管理单元的示意图。
图2B绘示内容寻址存储器的示意图。
图3A绘示翻译电路的示意图。
图3B绘示单元电路的示意图。
【符号说明】
10:嵌入式系统
100:处理器
102:第一层级存储器
104:第二层级存储器
106:存储器管理单元
108a:次要层级存储器控制器
108b:直接存储器访问电路
110a:第一数据线
110b:第二数据线
112:逻辑地址
114a:第一实体地址
114b:第二实体地址
116:存储器管理程序触发讯号
118:直接存储器访问命令
120:存储器操作命令
122:内容更新讯号
200A:逻辑区域位
200B、1 200B-1、2 200B-2、m 200B-m、212-1、212-2、212-n:逻辑区段位
200C:逻辑偏移位元
202:内容寻址存储器
204:比较器
204A:选择讯号
206:多任务器
206A、206B、206C:输入
206D:地址输出
208、306:“及”门
210A:实体区域位
210B、214-1、214-2、214-n:实体区段位
210C:实体偏移位元
216:“失误”讯号
300:翻译电路
302-1、302-2、302-n:单元电路
304-1、304-2、304-n:单元输出
308-1:逻辑位闩锁器
310-1:实体位闩锁器
312-1、312-2、312-m:“互斥或”门
314-1:“或”门
316-1:反向器
318-1:输出致能
具体实施方式
以下是提出本发明的多个实施例并搭配图式进行详细说明。
一种用于快取及虚拟存储器的存储器管理的替代方案称为重叠(overlay)。重叠区段(overlays)为程序或数据的区段。当整个程序或数据的大小大于存储器阶层的第一层级时,则程序设计者将程序或数据分割成多个重叠区段(区段)。重叠区段的大小相同或不同于程序或数据的大小。当虚拟存储器不能解决问题时,就会使用重叠区段的方案,例如当计算机系统中的系统资源被限制时(如存储器装置的储存容量大小的限制、操作系统功能的限制、编译程序功能的限制、或处理器速度的限制)。具有资源限制的计算机系统的其中之一个例子为嵌入式系统。
嵌入式系统不像一般的计算机系统,嵌入式系统被设计为特定应用,例如控制交通号志或MP3播放器。嵌入式系统包含有限的资源来支持特定的应用。基于这个原因之下,嵌入式系统可能使用相对较慢的处理器且只包括两个层级的存储器阶层,这使得其可使用的储存容量比一般计算机可使用的储存容量还要少。在嵌入式系统中,存储器阶层的第一层级中可为易失性存储器(例如,随机存取存储器),且第二层级中可为非易失性存储器(例如,闪存(flash memory))。
通过将最近或最常存取的重叠区段储存于存储器阶层的第一层级中,使用两个层级的存储器阶层将更有利于嵌入式系统。如此,重叠区段可在存储器阶层的第一层级中以较快的速度被存取。
为了执行程序的某些功能,举例来说,嵌入式系统中的处理器从随机存取存储器请求一个包含将要被执行的功能的重叠区段。如果请求的重叠区段存在于随机存取存储器(击中),则处理器执行包含在请求的重叠区段中的功能。如果请求的重叠区段不存在于随机存取存储器(失误),则处理器从闪存中复制请求的重叠区段至随机存取存储器,并执行包含在请求的重叠区段中的功能。同样的,为了存取数据的区段,举例来说,嵌入式系统中的处理器从随机存取存储器请求一个包含将要被存取的数据区段的重叠区段。如果请求的重叠区段存在于随机存取存储器(击中),则处理器存取包含在请求的重叠区段中的数据区段。如果请求的重叠区段不存在于随机存取存储器(失误),则处理器从闪存中复制请求的重叠区段至随机存取存储器,并存取包含在请求的重叠区段中的数据区段。
一般来说,存储器管理程序(MMR)决定“击中”或“失误”,以及“失误”情况的后续步骤。然而,存储器管理程序是基于软件的程序,因此,存储器管理程序的运作造成嵌入式系统中的已受限制的系统资源的负担。故提供一种方法及装置来管理存储器以减少存储器管理程序的使用。
请参照图1,嵌入式系统10包括处理器100、第一层级存储器102、第二层级存储器104、存储器管理单元106、次要层级存储器控制器108a、第一数据线110a及第二数据线110b。次要层级存储器控制器108a包括直接存储器访问(DMA)电路108b在第一层级存储器102与第二层级存储器104之间搬运重叠区段,其中重叠区段包含多个字组,搬运时是以重叠区段的整体来搬运,而不是以一次一个字组的方式搬运重叠区段。本案中所使用的“字组”指的是存储器的单位,包含了特定数量的位。处理器100为一般用途的处理器或特定应用的微控制器。第一层级存储器102可为易失性存储器,例如随机存取存储器,且第二层级存储器104可为非易失性存储器,例如闪存。
多个可执行程序可被储存在第二层级存储器104中。可执行程序其中之一被切割为多个重叠区段。被切割的可执行程序的全部重叠区段被储存在第二层级存储器104中。一些最近或最常被处理器存取的重叠区段被储存在第一层级存储器102中。当嵌入式系统10被描述到具有一个切割的可执行程序储存在第二层级存储器104中时,并不限于此且可包括多个切割的可执行程序储存在第二层级存储器104中。
相似地,数据可被储存在第二层级存储器104中,且被切割为多个重叠区段,其储存的方式与可执行程序的重叠区段的储存方式类似。被切割数据的全部的重叠区段被储存在第二层级存储器104中。一些最近或最常被处理器存取的数据的重叠区段被储存在第一层级存储器102中。此外,数据的重叠区段可被存取并写入新信息。当数据的重叠区段被存取并写入新信息时,程序设计者可利用同步协议来,例如“完全写入(write-through)”协议或“写回(write-back)”协议,来维持储存在第一层级存储器102与第二层级存储器104中的重叠区段的一致性。“完全写入”协议或“写回”协议是由处理器来执行。
关于“完全写入”协议,当储存在第一层级存储器102中的重叠区段被存取并将被写入新信息时,新信息会同时被写入到储存在第一层级存储器102中的重叠区段以及储存在第二层级存储器104中的对应的重叠区段。因此,在“完全写入”协议中,每次写入之后,储存在第一层级存储器102中的重叠区段以及储存在第二层级存储器104中的对应的重叠区段都会维持一致性。当储存在第一层级存储器102中的重叠区段与储存在第二层级存储器104中的重叠区段一致时,储存在第一层级存储器102中的重叠区段为“干净(clean)”。因此,在“完全写入”协议中,每次写入之后,储存在第一层级存储器102中的重叠区段为维持“干净”。
另一方面,在“写回”协议中,当储存在第一层级存储器102中的重叠区段被存取并将被写入新信息时,新信息会被写入到储存在第一层级存储器102中的重叠区段,但新信息不会立刻被写入到储存在第二层级存储器104中的对应的重叠区段。当储存在第一层级存储器102中的重叠区段被取代时,储存在第二层级存储器104中的对应的重叠区段才会被写入。储存在第一层级存储器102中的重叠区段被取代可如下进一步所述,例如“失误”的情况。因此,在“写回”协议中,储存在第一层级存储器102中的重叠区段与储存在第二层级存储器104中的对应的重叠区段都会不一致,直到储存在第一层级存储器102中的重叠区段被取代且储存在第二层级存储器104中的对应的重叠区段被写入相同的新信息(被写入至储存在第一层级存储器102中的重叠区段的新信息)。当储存在第一层级存储器102中的重叠区段与储存在第二层级存储器104中的对应的重叠区段不一致时,储存在第一层级存储器102中的重叠区段为“脏(dirty)”。因此,在“写回”协议中,每次写入之后,储存在第一层级存储器102中的重叠区段变为“脏”。可用一标识来指示储存在第一层级存储器102中的重叠区段为“干净”或“脏”。
每个重叠区段可包含将被处理器100执行的功能。为了执行功能,处理器100请求包含功能的重叠区段。每个重叠区段附加地或选择性的包括将被处理器100存取的数据的区段。为了存取数据的区段,处理器100请求包含数据的区段的重叠区段。处理器100透过先提供重叠区段的逻辑地址112至存储器管理单元106来请求重叠区段。接着,存储器管理单元106基于逻辑地址112决定请求的重叠区段是否存在于第一层级存储器102中。若请求的重叠区段存在于第一层级存储器102中(“击中”),则存储器管理单元106输出重叠区段的第一实体地址114a。第一实体地址114a指向第一层级存储器102中的请求的重叠区段。处理器100接着基于第一实体地址114a存取重叠区段,并执行包含在重叠区段内的功能,或存取包含在重叠区段内的数据的区段。在这个范例中,存储器管理程序不需要基于处理器100的重叠区段请求,在“击中”的情况中将逻辑地址112转换成第一实体地址114a。因此,可减少存储器管理程序的使用。
若请求的重叠区段不存在于第一层级存储器102中(“失误”),则存储器管理单元106提供存储器管理程序的触发讯号至处理器100,以触发存储器管理程序,存储器管理程序是由处理器100所执行。在存储器管理程序被处发之后,处理器100发布直接存储器访问(DMA)命令118至次要层级存储器控制器108a的直接存储器访问电路108b。响应于存储器存取命令118,直接存储器访问电路108b发布存储器操作命令120(例如,读取命令)及第二实体地址114b,以经由第二数据线110b及第一数据线110a将请求的重叠区段从第二层级存储器104复制到第一层级存储器102。此外,复制的重叠区段会取代储存在第一层级存储器102中的重叠区段。若储存在第一层级存储器102中的即将被取代的重叠区段为“脏”,则存储器管理程序执行“写回”协议,以使储存在第二层级存储器104中对应至“脏”重叠区段的重叠区段更新为新信息,这个新信息为已被写入到第二层级存储器104中的重叠区段且即将被取代的信息。在一些实施例中,在复制的重叠区段取代储存在第一层级存储器102中的重叠区段之前,“写回”协议就被执行。
此外,存储器管理程序发布内容更新讯号122以将复制的重叠区段的相关信息更新至存储器管理单元106,其详细内容如下进一步所述。处理器100接着执行包含在重叠区段内的功能或存取包含在重叠区段内的数据的区段来取代“脏”重叠区段。
图2A绘示图1所示的存储器管理单元106接收逻辑地址112的一例。存储器管理单元106包括内容寻址存储器202、比较器204、多任务器206及“及(AND)”逻辑门208。存储器管理单元106使用内容寻址存储器202将逻辑地址112转换成第一实体地址114a。
逻辑地址112被切割成3个子集合位,包括逻辑区域位200A、逻辑区段位200B及逻辑偏移位元200C。相似地,第一实体地址114a也被切割成3个子集合位,包括实体区域位210A、实体区段位210B及实体偏移位元210C。
图2B绘示内容寻址存储器202的一例。请参照图2A及图2B,逻辑区段位200B被提供至内容寻址存储器202,若是“击中”的情况,则内容寻址存储器202将逻辑区段位200B转换成实体区段位210B。当逻辑地址所指向的请求的重叠区段在第一层级存储器102中,则发生“击中”。请参照图2B,内容寻址存储器202包含存在于第一层级存储器102中的重叠区段的逻辑地址的多个逻辑区段位212-1至212-n。内容寻址存储器202也包含相同的重叠区段的实体地址所对应的多个实体区段位214-1至214-n。
在内容寻址存储器202中,逻辑区段位200B与内容寻址存储器202中所包含的逻辑区段位212-1至212-n比较。若逻辑区段位200B符合,举例来说,逻辑区段位212-1,则内容寻址存储器202将实体区段位214-1输出作为实体区段位210B。这种符合的情形对应到“击中”的情况。相似地,若逻辑区段位200B符合,举例来说,逻辑区段位212-2,则内容寻址存储器202将实体区段位214-2输出作为实体区段位210B。
请参照图2A,在“击中”的情况中,内容寻址存储器202输出实体区段位210B之后,实体区段位210B与逻辑区域位200A及逻辑偏移位元200C结合。实体偏移位元210C与逻辑偏移位元200C完全相同,且皆指示重叠区段中的请求的功能或请求的数据区段的起始位。逻辑区域位200A表示设计给重叠区段的预定的逻辑存储器区域。相似地,实体区域位210A表示设计给重叠区段的对应到预定的逻辑存储器区域的物理存储器区域。
第一实体地址114a被提供作为多任务器206的输入206A,同时逻辑地址112被提供作为多任务器206的另一输入206B。多任务器206基于被提供作为多任务器206的输入206C的选择讯号204A,决定地址输出206D。选择讯号204A是由比较器204所提供,比较器204决定逻辑地址112的逻辑区域位200A是否指向设计给重叠区段的预定的逻辑存储器区域。若逻辑地址112的逻辑区域位200A指向预定的逻辑存储器区域,则选择讯号204A用来选择输入206A,也就是第一实体地址114a被提供作为地址输出206D。处理器100接着基于地址输出206D所提供的第一实体地址114a来存取重叠区段,以及执行包含在重叠区段中的功能或存取包含在重叠区段中的数据区段。
若逻辑区域位200A未指向设计给重叠区段的预定的逻辑存储器区域,则选择讯号204A用来选择输入206B,也就是逻辑地址112被提供作为地址输出206D,以执行未被分割成重叠区段的程序或存取未被分割成重叠区段的数据。
请参照图2A及图2B,若逻辑区段位200B未符合逻辑区段位212-1至212-n的任何其中之一(“失误”的情况),则内容寻址存储器202输出“失误”讯号216至“及”逻辑门208的其中一个输入。比较器204输出选择讯号204A至“及”逻辑门208的其他输入。若逻辑区段位200B未符合逻辑区段位212-1至212-n的任何其中之一(“失误”的情况)且逻辑区域位200A指向设计给重叠区段的预定的逻辑存储器区域,则“及”逻辑门208输出存储器管理程序触发讯号116以启动存储器管理程序。也就是,当“失误”的情况,且当选择讯号204A用来选择输入206A,则“及”逻辑门208输出存储器管理程序触发讯号116。请参照图1,存储器管理程序接着经由第二数据线110b及第一数据线110a将请求的重叠区段从第二层级存储器104复制到第一层级存储器102。处理器100接着执行包含在重叠区段中的功能或存取包含在重叠区段中的数据区段。请参照图2A及图2B,此外,存储器管理程序发布内容更新讯号122将内容寻址存储器202内即将被取代的重叠区段的逻辑区段位(212-1至212-n之一)及对应的实体区段位(214-1至214-n之一),取代为请求的重叠区段(从第二层级存储器104复制到第一层级存储器102的重叠区段)的逻辑区段位及对应的实体区段位。存储器管理程序的程序设计者可基于例如重叠区段是否最近或最常被请求,来决定哪个重叠区段(及其逻辑区段位与实体区段位)被取代。
在一些实施例中,内容寻址存储器202更包括一标识,这个标识包含一或多个位,每个位与每个项目212-1至212-n相关联。每个标识指示储存在第一层级存储器102的重叠区段是否为“脏”。当“脏”重叠区段被取代,则存储器管理程序执行“写回”协议以使储存在第二层级存储器104中的对应的重叠区段被更新为新信息,其中这个新信息为被写入到储存在第一层级存储器102的“脏”重叠区段的信息。
请参照图3A及图3B,在一些实施例中,存储器管理单元106的内容寻址存储器202被取代为翻译电路300。翻译电路300包括单元电路302-1至302-n及”及”门306。每个单元电路302-1至302-n包含存在于第一层级存储器102的重叠区段的逻辑地址的逻辑区段位212-1至212-n的一个项目。每个单元电路302-1至302-n也包含存在于第一层级存储器102的同一个重叠区段的实体地址的对应的实体区段位214-1至214-n的一个项目。
此外,在一些实施例中,每个单元电路302-1至302-n接收处理器100所提供的逻辑地址112的逻辑区段位200B,以及接收存储器管理程序所提供的内容更新讯号122。内容更新讯号122系在“失误”的情况中,由存储器管理程序所提供用来将逻辑区段位(212-1至212-n之一)及对应的实体区段位(214-1至214-n之一),取代为请求的重叠区段(从第二层级存储器104复制到第一层级存储器102的重叠区段)的逻辑区段位及对应的实体区段位。此外,单元电路302-1至302-n分别提供单元输出304-1至304-n。
逻辑区段位200B与每一个逻辑区段位212-1至212-n比较。若逻辑区段位200B符合,举例来说,逻辑区段位212-1,则单元电路302-1输出实体区段位214-1作为实体区段位210B。此外,单元输出304-1变为逻辑“0”,相当于“击中”的情况。若逻辑区段位212-1至212-n有任何一个为“击中”的情况,则”及”门306输出逻辑“0”且“失误”讯号不会被触发。
另一方面,若逻辑区段位200B未符合,举例来说,逻辑区段位212-1,则单元输出304-1变为逻辑“1”。若逻辑区段位200B与任何一个逻辑区段位212-1至212-n皆不符合,则全部的单元输出304-1至304-n皆变成逻辑“1s”。在这种情况中,”及”门306接收所有的逻辑“1s”作为输入以及输出逻辑“1”,来触发“失误”讯号216至”及”门208,如图2A所示。
请参照图3B,在一些实施例中,单元电路302-1包括逻辑位闩锁器308-1、实体位闩锁器310-1、“互斥或(XOR)”闸312-1至312-m、”或”门314-1及反向器316-1。单元电路302-2至302-n包括的元件相同或类似于单元电路302-1前述的元件。逻辑位闩锁器308-1包含逻辑区段位212-1,逻辑区段位212-1包含1至m位。1至m位被分别提供至”互斥或”门312-1至312-m作为输入。
逻辑区段位200B也包括1至m位(逻辑区段位1 200B-1至逻辑区段位m 200B-m),其也被分别提供至”互斥或”门312-1至312-m作为输入。每个逻辑区段位212-1使用一个对应的”互斥或”门312-1至312-m与每一个逻辑区段位200B比较。当逻辑区段位212-1的第1个位与逻辑区段位200B的第1个位相同,则”互斥或”门312-1输出逻辑“0”。当这些位不相同时,则”互斥或”门312-1输出逻辑“1”。“互斥或”门312-2至312-m的功能相同或相似于”互斥或”门312-1。”互斥或”门312-1至312-m的输出被提供至”或”门314-1的输入。若”互斥或”门312-1至312-m其中之一输出逻辑“1”(其指示逻辑区段位212-1的对应的位与逻辑区段位200B不同),则”或”门314-1输出逻辑“1”作为单元输出304-1。
由于反向器316-1的作用,当单元输出304-1为逻辑“1”,则实体位闩锁器310-1的输出致能318-1接收逻辑“0”。如此,当单元输出304-1为逻辑“1”,或逻辑区段位212-1的第1个位与逻辑区段位200B的第1个位不相同时,实体位闩锁器310-1不提供实体区段位214-1。请参照图3A,若单元输出304-1至304-n皆为逻辑“1s”(其指示逻辑区段位200B不同于逻辑区段位212-1至212-n),则”及”门306提供触发的“失误”讯号216(例如逻辑“1”)至图2A的”及”门208。此外,实体位闩锁器310-1至310-n不提供实体区段位214-1至214-n。
请参照图3B,当逻辑区段位212-1的第1个位与逻辑区段位200B的第1个位相同时,”互斥或”门312-1输出逻辑“0”。因此,由于反向器316-1的作用,输出致能318-1接收逻辑“1”。如此,当单元输出304-1为逻辑“0”,或逻辑区段位212-1的第1个位与逻辑区段位200B的第1个位相同时,实体位闩锁器310-1提供实体区段位214-1。请参照图3A,若单元输出304-1至304-n的任何其中之一为逻辑“0”,则”及”门306也提供逻辑“0”且“失误”讯号216不会被触发。
熟习本发明所属领域的技艺者将想到,于此提出的本发明的多数修改及其他实施例,是具有上述说明及相关图式中所提供的教导的益处。因此,应理解本发明并非受限于所揭露的具体实施例,且修改及其他实施例包括于随附的权利要求范围的范畴内。
Claims (10)
1.一种嵌入式系统,包含将被执行的一程序,其中该程序被分割为多个重叠区段,该嵌入式系统包括:
一处理器,用以请求这些重叠区段其中之一,该请求的重叠区段包括即将被该处理器执行的该程序的一区段;
一第一层级存储器,耦接至该处理器,该第一层级存储器储存少于该程序的这些重叠区段;以及
一存储器管理单元,耦接至该处理器及该第一层级存储器,该存储器管理单元用以
基于该处理器所提供的一逻辑地址决定该请求的重叠区段是否储存于该第一层级存储器储存中,以及
当该请求的重叠区段储存于该第一层级存储器储存中,则转换该逻辑地址至一实体地址,其中该实体地址指向该请求的重叠区段。
2.根据权利要求1所述的嵌入式系统,其中该实体地址为一第一实体地址,以及其中该处理器更用以当该请求的重叠区段未储存于该第一层级存储器储存中时,提供一直接存储器访问命令,该嵌入式系统更包括:
一第二层级存储器,耦接至该处理器及该第一层级存储器,该第二层级存储器储存该程序的这些重叠区段;以及
一次要层级存储器控制器,耦接在该第二层级存储器及该处理器之间,该次要层级存储器控制器用以
自该处理器接收该直接存储器访问命令,
基于该直接存储器访问命令提供一第二实体地址及一存储器操作命令至该第二层级存储器,以及
自该第二层级存储器复制该请求的重叠区段至该第一层级存储器。
3.根据权利要求2所述的嵌入式系统,其中该存储器操作命令为一读取命令,该存储器管理单元更用以:
在该处理器提供直接存储器访问命令至该次要层级存储器控制器之前,提供一触发讯号至该处理器。
4.一种嵌入式系统,包含将被执行的一程序,其中该程序被分割为多个重叠区段,该嵌入式系统包括:
一处理器,用以基于一请求的重叠区段的一逻辑地址请求这些重叠区段的其中之一,该请求的重叠区段包括即将被该处理器执行的该程序的一区段,其中该逻辑地址包含多个逻辑区域位、多个逻辑区段位及多个逻辑偏移位元;
一第一层级存储器,耦接至该处理器,该第一层级存储器储存少于该程序的这些重叠区段;以及
一翻译电路,耦接至该处理器,该翻译电路用以
自该处理器接收这些逻辑区段位,以及
当该请求的重叠区段储存于该第一层级存储器储存中,则转换这些逻辑区段位至一实体地址的多个实体区段位,其中该实体地址指向储存于该第一层级存储器的该请求的重叠区段;
一比较器,耦接至该处理器,接收该逻辑地址的这些逻辑区段位,该比较器用以基于这些逻辑区段位提供一选择讯号;以及
一多任务器,接收该逻辑地址、该实体地址及该选择讯号,该多任务器用以基于该选择讯号输出该逻辑地址与该实体地址其中之一。
5.根据权利要求4所述的嵌入式系统,该嵌入式系统更包括:
一第二层级存储器,耦接至该处理器及该第一层级存储器,该第二层级存储器储存该程序的这些重叠区段;
一与门,用以
当该请求的重叠区段未储存于该第一层级存储器中时,自该翻译电路接收一失误讯号,
自该比较器接收该选择讯号,以及
提供一触发讯号,其中该处理器响应该处发讯号以提供一直接存储器访问命令;以及
一次要层级存储器控制器,耦接在该第二层级存储器及该处理器之间,该次要层级存储器控制器用以
基于该直接存储器访问命令提供一第二实体地址及一存储器操作命令至该第二层级存储器,以及
自该第二层级存储器复制该请求的重叠区段至该第一层级存储器。
6.根据权利要求4所述的嵌入式系统,其中该翻译电路为一内容寻址存储器,该内容寻址存储器用以:
储存该逻辑地址的这些逻辑区段位的多个项目,这些逻辑区段位的这些项目指向储存于该第一层级存储器的这些重叠区段,这些逻辑区段位的这些项目为多个逻辑位项目;
储存该实体地址的这些实体区段位的多个项目,这些实体区段位的这些项目指向储存于该第一层级存储器的相同的这些重叠区段,这些实体区段位的这些项目为多个实体位项目;
比较该请求的重叠区段的这些逻辑区段位与这些逻辑位项目的每一个;
当该请求的重叠区段的这些逻辑区段位符合这些逻辑位项目的其中之一,则输出这些实体位项目的一对应项目;以及
当该请求的重叠区段的该逻辑区段位不符合这些逻辑位项目,则输出一失误讯号。
7.根据权利要求4所述的嵌入式系统,其中该翻译电路包括:
多个单位电路,这些单位电路的每一个用以
储存一逻辑地址的该逻辑区段位的一项目,该逻辑区段位的该项目指向储存于该第一层级存储器的这些重叠区段的其中之一,该逻辑区段位的该项目为一逻辑位项目,
储存一实体地址的该实体区段位的一项目,该实体区段位的该项目指向储存于该第一层级存储器的这些重叠区段的其中之一,该实体区段位的该项目为一实体位项目,
决定该请求的重叠区段的该逻辑区段位是否符合该逻辑位项目,
提供一单元输出讯号以指示该请求的重叠区段的该逻辑区段位是否符合该逻辑位项目,以及
当该单元输出讯号指示符合,则输出该实体位项目;以及一逻辑电路,用以
自这些单位电路的每一个接收该单元输出讯号,以及
当自这些单位电路的每一个所接收的该单元输出讯号皆未指示符合,则输出一失误讯号。
8.根据权利要求7所述的嵌入式系统,其中该逻辑电路包括一与门,该逻辑电路为一第一逻辑电路,以及其中这些单元电路的至少之一包括:
一逻辑位闩锁器,包含该逻辑位项目;
多个第二逻辑电路,这些第二逻辑电路的每一个用以:
接收该逻辑位项目的一位作为一第一输入,
接收该请求的重叠区段的该逻辑区段位的一位作为第二输入,以及
提供一第一逻辑输出讯号以指示该第一输入与该第二输入是否相符合;
一第三逻辑电路用以
自这些第一逻辑电路的每一个接收该第一逻辑输出讯号,以及
提供一第二逻辑输出讯号至该第一逻辑电路,其中该第二逻辑输出讯号为该单元输出讯号;以及
一实体位闩锁器,接收一反向的第二逻辑输出讯号,该实体位闩锁器用以基于该反向的第二逻辑输出讯号输出该实体位项目;
其中这些第二逻辑电路包括多个互斥或门,及该第三逻辑电路包括一或门。
9.一种嵌入式系统,包含将被存取的数据,其中该数据被分割为多个重叠区段,该嵌入式系统包括:
一处理器,用以请求这些重叠区段其中之一,该请求的重叠区段包括即将被该处理器存取的该数据的一区段;
一第一层级存储器,耦接至该处理器,该第一层级存储器储存少于该数据的这些重叠区段;以及
一存储器管理单元,耦接至该处理器及该第一层级存储器,该存储器管理单元用以
基于该处理器所提供的一逻辑地址决定该请求的重叠区段是否储存于该第一层级存储器储存中,以及
当该请求的重叠区段储存于该第一层级存储器储存中,则转换该逻辑地址至一实体地址,其中该实体地址指向该请求的重叠区段。
10.根据权利要求9所述的嵌入式系统,其中该实体地址为一第一实体地址,以及其中该处理器更用以当该请求的重叠区段未储存于该第一层级存储器储存中时,提供一直接存储器访问命令,该嵌入式系统更包括:
一第二层级存储器,耦接至该处理器及该第一层级存储器,该第二层级存储器储存该程序的这些重叠区段;以及
一次要层级存储器控制器,耦接在该第二层级存储器及该处理器之间,该次要层级存储器控制器用以
自该处理器接收该直接存储器访问命令,
基于该直接存储器访问命令提供一第二实体地址及一存储器操作命令至该第二层级存储器,以及
自该第二层级存储器复制该请求的重叠区段至该第一层级存储器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/838,949 US10083135B2 (en) | 2015-08-28 | 2015-08-28 | Cooperative overlay |
US14/838,949 | 2015-08-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106484525A true CN106484525A (zh) | 2017-03-08 |
CN106484525B CN106484525B (zh) | 2019-09-24 |
Family
ID=58095610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510759662.1A Active CN106484525B (zh) | 2015-08-28 | 2015-11-10 | 嵌入式系统 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10083135B2 (zh) |
CN (1) | CN106484525B (zh) |
TW (1) | TWI569155B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114842894A (zh) * | 2021-02-02 | 2022-08-02 | 旺宏电子股份有限公司 | 存储器装置及其操作方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10034407B2 (en) * | 2016-07-22 | 2018-07-24 | Intel Corporation | Storage sled for a data center |
US10558576B2 (en) * | 2018-01-22 | 2020-02-11 | Western Digital Technologies, Inc. | Storage device with rapid overlay access |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5624316A (en) * | 1994-06-06 | 1997-04-29 | Catapult Entertainment Inc. | Video game enhancer with intergral modem and smart card interface |
TW200622604A (en) * | 2004-12-17 | 2006-07-01 | Matsushita Electric Tw Co Ltd | Memory management method of embedded system and its device |
CN102160039A (zh) * | 2008-07-22 | 2011-08-17 | 桑迪士克公司 | 闪存存储器件中的动态存储器分配引起的自我逐出的避免 |
CN102890625A (zh) * | 2011-07-20 | 2013-01-23 | 瑞萨电子株式会社 | 运算和控制单元、运算和控制方法、与并行处理器 |
CN103871447A (zh) * | 2012-12-14 | 2014-06-18 | 华邦电子股份有限公司 | 与非门快闪存储器阵列及芯片及其存取、读取及管理方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3639927B2 (ja) * | 1993-10-04 | 2005-04-20 | 株式会社ルネサステクノロジ | データ処理装置 |
KR100277902B1 (ko) * | 1998-08-18 | 2001-01-15 | 김영환 | 마이크로 프로세서 |
US6625715B1 (en) * | 1999-12-30 | 2003-09-23 | Intel Corporation | System and method for translation buffer accommodating multiple page sizes |
DE10201449C1 (de) * | 2002-01-16 | 2003-08-14 | Infineon Technologies Ag | Rechenwerk, Verfahren zum Ausführen einer Operation mit einem verschlüsselten Operanden, Carry-Select-Addierer und Kryptographieprozessor |
US7886198B2 (en) * | 2005-05-16 | 2011-02-08 | Texas Instruments Incorporated | Method and system of identifying overlays used by a program |
US7962684B2 (en) | 2008-02-14 | 2011-06-14 | Sandisk Corporation | Overlay management in a flash memory storage device |
US20110029735A1 (en) * | 2009-07-28 | 2011-02-03 | Ying-Chieh Chiang | Method for managing an embedded system to enhance performance thereof, and associated embedded system |
US8473921B2 (en) * | 2009-12-15 | 2013-06-25 | Microsoft Corporation | Debugging mechanisms in a cache-based memory isolation system |
US9317288B2 (en) * | 2011-04-07 | 2016-04-19 | Via Technologies, Inc. | Multi-core microprocessor that performs x86 ISA and ARM ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
-
2015
- 2015-08-28 US US14/838,949 patent/US10083135B2/en active Active
- 2015-10-21 TW TW104134476A patent/TWI569155B/zh active
- 2015-11-10 CN CN201510759662.1A patent/CN106484525B/zh active Active
-
2018
- 2018-08-24 US US16/111,294 patent/US10635614B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5624316A (en) * | 1994-06-06 | 1997-04-29 | Catapult Entertainment Inc. | Video game enhancer with intergral modem and smart card interface |
TW200622604A (en) * | 2004-12-17 | 2006-07-01 | Matsushita Electric Tw Co Ltd | Memory management method of embedded system and its device |
CN102160039A (zh) * | 2008-07-22 | 2011-08-17 | 桑迪士克公司 | 闪存存储器件中的动态存储器分配引起的自我逐出的避免 |
CN102890625A (zh) * | 2011-07-20 | 2013-01-23 | 瑞萨电子株式会社 | 运算和控制单元、运算和控制方法、与并行处理器 |
CN103871447A (zh) * | 2012-12-14 | 2014-06-18 | 华邦电子股份有限公司 | 与非门快闪存储器阵列及芯片及其存取、读取及管理方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114842894A (zh) * | 2021-02-02 | 2022-08-02 | 旺宏电子股份有限公司 | 存储器装置及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US10083135B2 (en) | 2018-09-25 |
US10635614B2 (en) | 2020-04-28 |
US20170060793A1 (en) | 2017-03-02 |
CN106484525B (zh) | 2019-09-24 |
TW201709084A (zh) | 2017-03-01 |
TWI569155B (zh) | 2017-02-01 |
US20180365183A1 (en) | 2018-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Condit et al. | Better I/O through byte-addressable, persistent memory | |
CN104978281B (zh) | 数据存储设备中的数据完整性管理 | |
Mittal et al. | A survey of software techniques for using non-volatile memories for storage and main memory systems | |
US9678863B2 (en) | Hybrid checkpointed memory | |
US8762661B2 (en) | System and method of managing metadata | |
CN103207839B (zh) | 存储的高速缓存内的轨道清除的高速缓存管理方法和系统 | |
Qiu et al. | NVMFS: A hybrid file system for improving random write in nand-flash SSD | |
CN107180092B (zh) | 一种文件系统的控制方法、装置及终端 | |
CN109407979A (zh) | 多线程持久性b+树数据结构设计与实现方法 | |
US11544093B2 (en) | Virtual machine replication and migration | |
CN106662981A (zh) | 存储设备、程序和信息处理方法 | |
CN105893274B (zh) | 一种面向异构内存系统建立检查点的装置 | |
CN101120305A (zh) | 新型即时复制操作 | |
JP2012141946A (ja) | 半導体記憶装置 | |
Lee et al. | Eliminating periodic flush overhead of file I/O with non-volatile buffer cache | |
KR20100021868A (ko) | 플래시 메모리 장치를 위한 버퍼 캐쉬 관리 방법 | |
CN110018790B (zh) | 一种保证持久性内存中数据崩溃一致性的方法及系统 | |
CN107851037A (zh) | 在使用带锁定和未锁定的非易失存储器的共享存储器中的硬件事务存储的一致性协议 | |
US6950909B2 (en) | System and method for reducing contention in a multi-sectored cache | |
CN107818052A (zh) | 内存访问方法及装置 | |
CN106201335A (zh) | 存储系统 | |
Kang et al. | CLOCK-DNV: A write buffer algorithm for flash storage devices of consumer electronics | |
KR20180122969A (ko) | 멀티 프로세서 시스템 및 이에 포함된 프로세서의 데이터 관리 방법 | |
CN106484525A (zh) | 嵌入式系统 | |
CN111414320B (zh) | 基于日志文件系统的非易失内存构建磁盘cache的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |