具体实施方式
在本说明书以及权利要求书当中使用了某些词汇来指称特定的***组件,而所属领域中的相关技术人员应可理解,消费电子设备制造商可能会用不同的名词来称呼同一个组件,本说明书及权利要求书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则,在通篇说明书及后续的请求项当中所提及的“包含有”为一个开放式的用语,故应解释成“包含有但不限定于”,此外,“耦接”一词在此表示任何直接及间接的电气连接手段,因此,若文中描述第一装置耦接于第二装置,则代表第一装置可以直接电气连接于第二装置,或通过其它装置或连接手段间接地电气连接至第二装置。
请参考图1,图1所示为依据本发明的第一实施例说明在片上***装置中用于目标模块102与至少一功能模块(即本实施例中的两个功能模块104、106)的存储器共享***100。第一功能模块104包含有第一静态随机存取存储器110,第二功能模块106包含有第二静态随机存取存储器112,存储器共享***100包含有计算装置114、存储器分配装置116以及存储器控制装置101。其中,计算装置114用于计算功能模块104、106的存储器容量;而如果模块群组(module group)的总存储器容量满足目标模块102的存储器容量需求,则存储器分配装置116会分配模块群组的静态随机存取存储器,其中模块群组包含有至少一功能模块;存储器控制装置101用于存取模块群组中功能模块的静态随机存取存储器。在此请注意,为了能够更清楚地描述本发明的精神,在本实施例中,模块群组仅包含有上述的第一功能模块104以及第二功能模块106,然而,在另一实施例中,模块群组则可以包含有目标模块102、第一功能模块104以及第二功能模块106。每一静态随机存取存储器的容量等于地址的数量与数据位的数量的乘积。在本实施例中,目标模块102本身没有配置任何内部的静态随机存取存储器,并且存储器控制装置101用来让目标模块102可以共享分别被分配给第一功能模块104以及第二功能模块106的第一静态随机存取存储器110以及第二静态随机存取存储器112。另外,在此请注意,上述的实施例中所设置的模块的数量以及静态随机存取存储器的数量仅作为本发明的范例说明,更明确地来说,一个目标模块仅共享两个静态随机存取存储器并不是本发明的限制条件。接着,本说明书将在以下段落中利用一个范例来说明共享存储器的操作细节。
请再参考图1,在片上***装置的正常操作模式中,目标模块102需要一个大小为(110×20)的存储器容量,第一功能模块104需要一个大小为(162×12)的存储器容量,第二功能模块106需要一个大小为(128×9)的存储器容量,其中,上述数值110、162以及128分别为地址的数量,数值20、12以及9分别为数据位的数量。此外,目标模块102、第一功能模块104以及第二功能模块106并不是同时被启动。
为了确认在第一功能模块104以及第二功能模块106中的总存储器容量符合目标模块102的存储器容量需求,计算装置114会计算第一静态随机存取存储器110以及第二静态随机存取存储器112的存储器容量,其分别为162×12以及128×9,并且得到总存储器容量为162×12+128×9。接着,计算装置114会将目标模块102所需要的存储器容量110×20与总存储器容量162×12+128×9进行比较,并且得知总存储器容量162×12+128×9不小于目标模块102所需要的存储器容量110×20,即(162×12+128×9)≥110×20。因此,由于第一功能模块104以及第二功能模块106中的总存储器容量符合目标模块102的存储器容量需求,所以本发明的存储器共享方法便可以在存储器共享***100中进行操作。
接着,计算装置114会进一步分别计算第一静态随机存取存储器110以及第二静态随机存取存储器112的地址的数量与数据位的数量,以决定本发明用于存储器共享***100中的存储器共享机制。由于第一功能模块104以及第二功能模块106的地址的数量均大于110,并且上述两个功能模块的数据位的数量均小于20,而上述两个功能模块的数据位的数量的总和(即12+9=21)并不小于20,这意味着当第一功能模块104以及第二功能模块106还没被启动时,目标模块102的数据可以被直接存取到第一静态随机存取存储器110以及第二静态随机存取存储器112。因此,存储器分配装置116将第一静态随机存取存储器110(即具有大小为(162×12)的存储器容量的单一存储器芯片)分配到第一功能模块104,以及将第二静态随机存取存储器112(即具有大小为(128×9)的存储器容量的单一存储器芯片)分配到第二功能模块106。
当第一功能模块104以及第二功能模块106还没被启动时,片上***装置先启动目标模块102以及存储器控制装置101,然后再启动该存储器共享机制。
请参考图2,图2所示为举例说明图1中的目标模块102的存储器共享机制配置设定的示意图。如前所述,目标模块102的操作需要一个大小为(110×20)的存储器容量,其中110个地址中的每一个地址均对应于20个数据位。如图2所示,存储器控制装置101将第一静态随机存取存储器110以及第二静态随机存取存储器112虚拟合并来提供目标模块102所需的适合的存储器容量。在本实施例中,存储器控制装置101直接将目标模块102所请求的地址传送给第一静态随机存取存储器110以及第二静态随机存取存储器112,来分别存取M1个数据位(例如12个数据位)以及N1个数据位(例如8个数据位)。在此请注意,M1以及N1的总和(即M1+N1)等于20,此外,根据各种不同的设计需求,M1以及N1的数值为可弹性设定的,同时被选择用来跟目标模块102一起共享的数据位也是可弹性设定的。换句话说,在M1+N1=20的情况下,任何M1个数据位都可以从第一功能模块104的第一静态随机存取存储器110中选出,任何N1个数据位都可以从第二功能模块106的第二静态随机存取存储器112中选出,举例来说,11个数据位可以从第一功能模块104的第一静态随机存取存储器110的任一部分中选出,以及另外9个数据位可以从第二功能模块106的第二静态随机存取存储器112的任一部分中选出,以响应由目标模块102所传送出的特定地址的请求,如此一来,没有配置内部静态随机存取存储器的目标模块102便可以通过该存储器共享机制来正常地操作。
请参考图3,图3所示为概述本发明提供图1所示的存储器共享***100的方法流程图。假如实质上可以得到相同的结果,则流程中的步骤不一定需要照图3所示的顺序来执行,该步骤也不一定需要是连续的,也就是说,这些步骤之间可以***其它的步骤。本发明的方法包含有下列步骤:
步骤302:决定需要进行存储器共享操作的目标模块102,其中目标模块102需要大小为(110×20)的存储器容量。
步骤304:定义包含有至少第一功能模块104以及第二功能模块106的模块群组,其中第一功能模块104具有大小为(162×12)的存储器容量,以及第二功能模块106具有大小为(128×9)的存储器容量。
步骤306:计算第一功能模块104以及第二功能模块106的存储器容量,以确认该存储器容量符合目标模块102的存储器容量需求,即(162×12+128×9)≥110×20。
步骤308:检查第一功能模块104以及第二功能模块106的地址数量是否均大于110,以及第一功能模块104以及第二功能模块106的数据位数量是否均小于20,以及第一功能模块104以及第二功能模块106的数据位数量的总和是否不小于20。
步骤310:分别将第一静态随机存取存储器110以及第二静态随机存取存储器112分配给第一功能模块104以及第二功能模块106,其中第一静态随机存取存储器110的存储器容量为(162×12),以及第二静态随机存取存储器112的存储器容量为(128×9)。
步骤312:当第一功能模块104以及第二功能模块106都还没被启动时,启动目标模块102。
步骤314:当第一功能模块104以及第二功能模块106都还没被启动时,分别将M1个数据位(即12个数据位)以及N1个数据位(即8个数据位)分配给分别被分配到第一功能模块104以及第二功能模块106的第一静态随机存取存储器110以及第二静态随机存取存储器112。
步骤316:参考由目标模块102所请求的特定地址来相应地存取分别被分配到第一功能模块104以及第二功能模块106的第一静态随机存取存储器110以及第二静态随机存取存储器112中的M1个数据位以及N1个数据位。
请参考图4,图4所示为依据本发明的第二实施例说明在片上***装置中用于目标模块402与至少一功能模块(即本实施例中的两个功能模块404、406)的存储器共享***400。与第一实施例相似,其中第一功能模块404包含有第一静态随机存取存储器410,第二功能模块406包含有第二静态随机存取存储器412。存储器共享***400包含有计算装置414、存储器分配装置416以及存储器控制装置401。由于计算装置414、存储器分配装置416以及存储器控制装置401分别具有与第一实施例中的计算装置114、存储器分配装置116以及存储器控制装置101相同的功能,所以就不在多加赘述其详细内容。在本实施例中,目标模块402中没有配置任何内部的静态随机存取存储器,并且存储器控制装置401用来让目标模块402可以共享分别被分配到第一功能模块404以及第二功能模块406的第一静态随机存取存储器410以及第二静态随机存取存储器412。另外,在此请注意,上述的实施例中所设置的模块的数量以及静态随机存取存储器的数量仅作为本发明的范例说明,更明确地来说,一个目标模块仅共享两个静态随机存取存储器并不是本发明的限制条件,接着,本说明书将在以下段落中利用一个范例来说明共享存储器的操作细节。
请再参考图4,在该片上***装置的正常操作模式中,目标模块402需要一个大小为(110×24)的存储器容量,并且第一功能模块404需要一个大小为(162×12)的存储器容量,以及第二功能模块406需要一个大小为(128×9)的存储器容量,其中,上述数值110、162以及128分别为地址的数量,而数值24、12以及9则分别为数据位的数量,此外,目标模块402、第一功能模块404以及第二功能模块406并非同时被启动。
与第一实施例相似,计算装置414会将目标模块402所需要的存储器容量110×24与第一功能模块404以及第二功能模块406的总存储器容量162×12+128×9进行比较,并且得到总存储器容量162×12+128×9不小于目标模块402所需要的存储器容量110×24,即(162×12+128×9)≥110×24。
接着,计算装置414会进一步分别计算第一静态随机存取存储器410以及第二静态随机存取存储器412的地址的数量与数据位的数量,以决定本发明用于存储器共享***400中的存储器共享机制。由于第一功能模块404以及第二功能模块406的地址的数量均大于110,并且上述两个功能模块404、406的数据位的数量均小于24,上述两个功能模块的数据位的数量的总和(即21)也小于24,这意味着当第一功能模块404以及第二功能模块406还没被启动时,目标模块402的数据并无法被直接存取到第一静态随机存取存储器410以及第二静态随机存取存储器412。然而,由于在第一功能模块404以及第二功能模块406中的总存储器容量符合目标模块402的存储器容量需求,即(162×12+128×9)≥110×24,因此,存储器分配装置416将第一静态随机存取存储器410(其是由实体上各自独立的多个静态随机存取存储器芯片所构成,且具有大小为(162×12)的总存储器容量)分配到第一功能模块404,以及将第二静态随机存取存储器412(其是由实体上各自独立的多个静态随机存取存储器芯片所构成,且具有大小为(128×9)的总存储器容量)分配到第二功能模块406。
用来组成第一静态随机存取存储器410的静态随机存取存储器芯片的数量通过进行无条件进位(roundup)操作来决定,也就是由计算装置414来计算一个大于但最接近的整数。该无条件进位操作根据等于目标模块402所需要的存储器容量的数据位数量(即24)除以第一功能模块404所需要的存储器容量的数据位数量(即12)的数值来进行。用于组成第二静态随机存取存储器412的静态随机存取存储器芯片的数量通过进行根据等于目标模块402所需要的存储器容量的数据位数量(即24)除以第二功能模块406所需要的存储器容量的数据位数量(即9)的数值的无条件进位操作来决定。
因此第一静态随机存取存储器410便可以具有一个大小为(162×12)的总存储器容量,并且这是由两个分别具有大小为(81×12)的存储器容量的独立静态随机存取存储器芯片所构成,而这些存储器被分配到第一功能模块404。此外,具有大小为(128×9)的总存储器容量,并且由三个分别具有大小为(43×9)的存储器容量的独立静态随机存取存储器芯片所构成的第二静态随机存取存储器412被分配到第二功能模块406。在此请注意,在第一静态随机存取存储器410中,每一存储器芯片的地址数量(即81)以及在第二静态随机存取存储器412中每一存储器芯片的地址数量(即43)的总和不应该小于目标模块402所需要的地址数量。另外,请注意,在本发明中,第一静态随机存取存储器410以及第二静态随机存取存储器412并不限制于使用实体上各自独立的多个静态随机存取存储器芯片,本领域的相关技术人员应该能了解在这方面也可以利用存储器分配装置416来将第一静态随机存取存储器410程序化分割为多个虚拟独立的静态随机存取存储器芯片,并且同样具有上述的存储器容量,另外,第二静态随机存取存储器412也同样可以进行如此处理。
当第一功能模块404以及第二功能模块406还没被启动时,片上***装置启动目标模块402,存储器控制装置401开始使能存储器共享机制。
请参考图5,图5所示为举例说明图4中目标模块402的存储器共享机制配置设定的示意图。第一静态随机存取存储器410以及第二静态随机存取存储器412分别具有实体上各自独立的多个静态随机存取存储器芯片,并且这些静态随机存取存储器芯片可以被重新排列以组成如图5所示的存储器配置设定。换句话说,第一静态随机存取存储器410对应于大小为(81×24)的存储器容量,以及第二静态随机存取存储器412对应于大小为(43×27)的存储器容量。因此,存储器控制装置401将第一静态随机存取存储器410以及第二静态随机存取存储器412虚拟合并来提供目标模块402所需的适合的存储器容量。在本实施例中,存储器控制装置401直接将M3个地址(例如81个地址)分配给第一静态随机存取存储器410以及将N3个地址(例如29个地址)分配给第二静态随机存取存储器412,其中M3以及N3的总和(即M3+N3)等于110。在此请注意,M3以及N3的数值能够根据各种不同的设计需求而弹性地设定,同时被选择用来与目标模块402一起共享的地址也是可弹性地设定的。换句话说,在M3+N3=110的情况下,任何M3个地址都可以从第一功能模块404的第一静态随机存取存储器410中选出,以及任何N3个地址都可以从第二功能模块406的第二静态随机存取存储器412中选出,如图5所示,并且当接收到由目标模块402所请求的特定地址时,存储器控制装置401参考该特定地址来存取第一静态随机存取存储器410或是第二静态随机存取存储器412以处理所要的24个数据位。如此一来,尽管目标模块402本身不具有任何内部静态随机存取存储器,目标模块402仍然可以通过存储器共享机制来进行正常的操作。
请参考图6,图6所示为概述本发明提供图4所示的存储器共享***400的方法流程图。假如实质上可以得到相同的结果,则流程中的步骤不一定需要照图6所示的顺序来执行,也不一定需要是连续的,也就是说,这些步骤之间可以***其它的步骤。本发明的方法包含有下列步骤:
步骤602:决定需要进行存储器共享操作的目标模块402,其中目标模块402需要大小为(110×24)的存储器容量。
步骤604:定义包含有至少第一功能模块404以及第二功能模块406的模块群组,其中第一功能模块404需要大小为(162×12)的存储器容量,以及第二功能模块406需要大小为(128×9)的存储器容量。
步骤606:计算第一功能模块404以及第二功能模块406的存储器容量,以确认该存储器容量符合目标模块402的存储器容量需求,即(162×12+128×9)≥110×24。
步骤608:检查第一功能模块404和第二功能模块406的地址数量是否均大于110,以及第一功能模块404和第二功能模块406的数据位数量是否均小于24,还有第一功能模块404和第二功能模块406的数据位数量的总和是否也小于24。
步骤610:进行无条件进位(roundup)操作,以分别将第一静态随机存取存储器410以及第二静态随机存取存储器412分配给第一功能模块404以及第二功能模块406,其中第一静态随机存取存储器410的存储器容量由两个分别具有大小为(81×12)的存储器容量的实体上彼此独立的静态随机存取存储器芯片所构成,以及第二静态随机存取存储器412的存储器容量由三个分别具有大小为(43×9)的存储器容量的实体上彼此独立的静态随机存取存储器芯片所构成,此外,目标模块402需要一个大小为(110×24)的存储器容量,并且第一功能模块404需要一个大小为(162×12)的存储器容量,以及第二功能模块406需要一个大小为(128×9)的存储器容量。
步骤612:当第一功能模块404以及第二功能模块406都还没被启动时,启动目标模块402。
步骤614:当第一功能模块404以及第二功能模块406都还没被启动时,重新设定这些存储器芯片的组态,并且分别将M3个地址以及N3个地址分配给分别被分配到第一功能模块404以及第二功能模块406的第一静态随机存取存储器410以及第二静态随机存取存储器412。
步骤616:参考由目标模块402所请求的特定地址来相对应地存取被分配到第一功能模块404的第一静态随机存取存储器410或是被分配到第二功能模块406的第二静态随机存取存储器412。
当与该存储器容量中特定地址相关的目标数据由目标模块402所请求,并且目标模块402被设计为具有较为宽松的数据存取时间限制时,存储器控制装置401就可允许在多个频率周期循环内通过参考特定地址来完成存取与特定地址相关的静态随机存取存储器装置,举例来说,在响应目标模块402的请求时,存储器控制装置401可以在两个频率周期循环存取第一静态随机存取存储器410以获得前面81个地址中所需要的24个数据位,以及可以在三个频率周期循环存取第二静态随机存取存储器412以获得剩下29个地址中所需要的24个数据位。
请参考图7,图7所示为依据本发明的第三实施例说明在片上***装置中用于目标模块702与至少一功能模块(即本实施例中的两个功能模块704、706)的存储器共享***700。第一功能模块704包含有第一静态随机存取存储器710,并且第二功能模块706包含有第二静态随机存取存储器712,存储器共享***700包含有计算装置715、存储器分配装置716以及存储器控制装置701。由于计算装置715、存储器分配装置716以及存储器控制装置701分别具有与第一实施例中的计算装置114、存储器分配装置116以及存储器控制装置101相同的功能,所以就不再赘述其详细内容。在本实施例中,目标模块702并没有配置任何内部的静态随机存取存储器,存储器控制装置701用来让目标模块702可以共享分别被分配到第一功能模块704以及第二功能模块706的第一静态随机存取存储器710以及第二静态随机存取存储器712。另外,在此请注意,上述的实施例中所设置的模块的数量以及静态随机存取存储器的数量仅作为本发明的范例说明,更明确地来说,一个目标模块仅共享两个静态随机存取存储器并不是本发明的限制条件,接着,本说明书将在以下段落中利用一个范例来说明共享存储器的操作细节。
该片上***装置的存储器容量需求与上述的图4中的第二实施例实质上相同,所以就不在多加赘述关于计算装置715所执行的计算操作的详细内容,然而,在本实施例中,存储器分配装置716仅分配单一存储器芯片来建立第一静态随机存取存储器710,以及分配另一个单一存储器芯片来建立第二静态随机存取存储器712。对于第一静态随机存取存储器710而言,具有大小为(81×24)的存储器容量的单一存储器芯片被视为分别具有大小为(81×12)的存储器容量的两个读/写区块,其中,在目标模块702共享第一功能模块704的静态随机存取存储器时,这两个读/写区块的采用依循应用于上述第二实施例的规则。同样地,对于第二静态随机存取存储器712而言,具有大小为(43×27)的存储器容量的单一存储器芯片被视为分别具有大小(43×9)的存储器容量的三个读/写区块。第一静态随机存取存储器710的数据位的总数以及第二静态随机存取存储器712的数据位的总数分别为24与27,如图7所示,这等于或大于目标模块702所需要的数据位的总数24。此外,第一静态随机存取存储器710以及第二静态随机存取存储器712的地址的总数为124,其大于目标模块702所需要的地址的总数110,而两个分别具有大小为(81×12)的存储器容量的存储器芯片的整体芯片面积大于具有大小为(81×24)的存储器容量的单一存储器芯片的整体芯片面积,因此,相较于第二实施例,本发明的第三实施例提供一个成本较低的解决方案。
另一方面,当目标模块702还没被启动,而第一功能模块704或第二功能模块706被启动时(例如第一功能模块704被启动时),在第一功能模块704中的第一静态随机存取存储器710需要被第一功能模块704所存取,然而,由于第一静态随机存取存储器710的存储器容量为(81×24),而不是(162×12),所以应该在存储器共享***700中使用一种屏蔽机制(maskingmechanism),如此一来,为了使得第一功能模块704以及第二功能模块706能够分别正确地存取第一静态随机存取存储器710以及第二静态随机存取存储器712,屏蔽装置714被使用。图8所示为图7中的屏蔽装置714的示意图,在此请注意,虽然图7中的屏蔽装置714屏蔽了第一功能模块704,但是这仅作为本发明的范例说明,而不是本发明的限制条件,换句话说,当具有特定地址的所要的数据位分别被第一功能模块704与第二功能模块706所请求时,屏蔽装置714用于分别参考第一功能模块704以及第二功能模块706中的第一静态随机存取存储器710以及第二静态随机存取存储器712。屏蔽装置714包含有写入屏蔽装置714a以及读取屏蔽装置714b,其中写入屏蔽装置714a用于利用特定地址的至少一最低位来屏蔽第一静态随机存取存储器710及/或第二静态随机存取存储器712,以写入所需要的数据位到第一静态随机存取存储器710以及第二静态随机存取存储器712;而读取屏蔽装置714b用于利用特定地址的至少一最低位来屏蔽第一静态随机存取存储器710及/或第二静态随机存取存储器712,以使存储器控制装置701从第一静态随机存取存储器710以及第二静态随机存取存储器712中读取所需要的数据位。本说明书将在以下段落中详细说明关于这部分的实施方式。
在实施例中,两个与门(AND gate)720与722用来作为写入屏蔽装置714a,2对1多任务器(2-to-1 multiplexer)724用来作为读取屏蔽装置714b,其中第一与门720的第一输入端耦接于特定地址的最低位,第二输入端耦接于所需要的数据位,输出端耦接于第一静态随机存取存储器710以及第二静态随机存取存储器712;而第二与门722的第一输入端耦接于特定地址中最低位的反相,第二输入端耦接于所需要的数据位,输出端耦接于第一静态随机存取存储器710以及第二静态随机存取存储器712。
当第一功能模块704将数据DATAin写入第一静态随机存取存储器710时,其中数据DATAin为12位的数据并且具有地址ADR,则地址ADR的最低位ADR_A[0]会被输入到第一与门720的第一输入端,反相的最低位~ADR_A[0]会被输入到第二与门722的第一输入端,因此,当数据DATAin被写入第一静态随机存取存储器710时,第一与门720以及第二与门722的其中之一就会被开启。请参考图9,图9所示为利用本发明的写入屏蔽装置714a来举例说明第一功能模块704的数据写入操作的示意图。为了简单说明起见,图8与图9中只有显示应用于第一功能模块704的电路组件,然而,屏蔽装置714另包含有其它类似的电路组件(未显示)应用于第二功能模块706。其中,当第一功能模块704在操作时,其相对应的写入屏蔽装置714a依据最低地址位ADR_A[0]来屏蔽24个数据位的前半部分或后半部分(即如图9中所示的710a或710b的部分),以将数据DATAin写入第一静态随机存取存储器710,因此,从第一功能模块704的方面来看,通过写入屏蔽装置的帮助,第一静态随机存取存储器710等于具有存储器容量(162×12)的静态随机存取存储器。举例来说,请参考图9,当第一功能模块704将数据写入第一静态随机存取存储器710时,如果与写入请求相关的地址ADR_A[0]的最低位为1,则与24个数据位的前半部分的相对应的12位数据就会被写入到对应于该地址的前面12个数据位(即710a的部分);然而,当第一功能模块704将数据写入第一静态随机存取存储器710时,如果该地址的最低位为0,则与24个数据位的后半部分的相对应的12位数据就会被写入到对应于该地址的后面12个数据位(即710b的部分)。
另一方面,当第一功能模块704从第一静态随机存取存储器710中读取数据DATAout时,其中数据DATAout为12位的数据并且具有地址ADR,但是第一静态随机存取存储器710所输出的数据为24个位,所以地址ADR的最低位ADR_A[0]’被输入到多任务器724中,并且最低位ADR_A[0]’决定多任务器724要输出数据DATAout中所需的12个位数据。如图10所示,图10所示为利用本发明的读取屏蔽装置714b来举例说明第一功能模块704的数据读取操作的示意图。对于读取屏蔽装置714b而言,读取屏蔽装置714b用于依据与读取请求相关的最低地址位ADR_A[0]’来屏蔽24个数据位的前半部分或后半部分以作为输出数据DATAout。请参考图10,当第一功能模块704读取第一静态随机存取存储器710时,对应于与读取请求相关的地址704c的全部24个数据位会从第一静态随机存取存储器710中读取出来,同样地,全部24个数据位是从图10中所示的710a与710b的部分输出。如果该相关地址的最低位ADR_A[0]’为1,则多任务器724就会依据710a的部分中24个数据位的前半部分的地址来输出前面的12个数据位,而如果该相关地址的最低位ADR_A[0]’为0,则多任务器724就会依据710b的部分中24个数据位的后半部分的地址来输出后面的12个数据位。在此请注意,本发明并不限制利用相关地址的最低位来判断哪个部分会被存取。同样地,第二功能模块706也是利用写入屏蔽装置714a以及读取屏蔽装置714b来存取第二静态随机存取存储器712,其中,写入屏蔽装置714a是参考最低的两个地址位来将9位数据写入到高、中、低各9个数据位其中之一,并且读取屏蔽装置714b是参考最低的两个地址位来从高、中、低各9个数据位中选择其中之一来输出数据。然而,当第一功能模块704以及第二功能模块706还没被启动时,片上***装置先启动目标模块702以及存储器控制装置701,然后再使能存储器共享机制,同样地,本发明并不限制利用相关地址的最低两个位来判断哪个部分会被存取。
请参考图11,图11所示为概述利用本发明的屏蔽装置714来存取第一功能模块704中的第一静态随机存取存储器710的方法流程图。为了简单说明起见,在图11中所示的方法仅用于存取第一功能模块704中的第一静态随机存取存储器710,然而,本领域的相关技术人员在阅读上述说明内容之后应该可以了解该方法通过适当地修改之后也可以应用于第二功能模块706。假如实质上可以得到相同的结果,则流程中的步骤不一定需要照图11所示的顺序来执行,也不一定需要是连续的,也就是说,这些步骤之间可以***其它的步骤。本发明的方法包含有下列步骤:
步骤802:不启动目标模块702。
步骤804:当特定地址被分配到第一功能模块704时,启动第一功能模块704中的第一静态随机存取存储器710。
步骤806:决定第一功能模块704中的第一静态随机存取存储器710的操作,如果该特定地址所需要的数据位需要被写入到第一静态随机存取存储器710中,则进行步骤808;如果对应于该特定地址的数据位需要被从第一静态随机存取存储器710中读取出来,则进行步骤812。
步骤808:利用该特定地址的最低位ADR_A[0]来决定与该特定地址相关的哪一部分的12个数据位中会被存取。
步骤810:如果最低位ADR_A[0]为1,则将12个数据位写入到24个数据位的前半部分(即710a的部分);如果最低位ADR_A[0]为0,则将12个数据位写入到24个数据位的后半部分(即710b的部分)。
步骤812:利用该特定地址的最低位ADR_A[0]’来决定与该特定地址相关的哪一部分的12个数据位会被选取。
步骤814:如果最低位ADR_A[0]’为1,则从24个数据位的前半部分(即710a的部分)中选取12个数据位;如果最低位ADR_A[0]’为0,则从24个数据位的后半部分(即710b的部分)中选取12个数据位。
同样地,对于存取第二功能模块706的情况,本发明方法是参考最低的两个地址位来将9位数据输入到高、中、低各9个数据位其中之一,并且读取屏蔽装置714b参考最低的两个地址位来从高、中、低各9个数据位中选择其中之一来输出数据。
在此请注意,虽然在上述的实施例中,目标模块与功能模块不是同时被启动,但这并不是本发明的限制条件,换句话说,目标模块与功能模块的其中一些功能模块是可以同时被启动的。
以上所述仅为本发明的较佳实施例,凡依本发明权利要求范围所做的均等变化与修饰,皆应属本发明的涵盖范围。