专利名称:存储器共享方法
技术领域:
本发明是有关于存储器共享技术,特别指 一 种在片上系统(system-on-chip, SOC)装置中让多个功能模块可以共享静态随机存取存储 器的存储器共享方法。
背景技术:
一般而言,虽然片上系统装置的发展己经大幅地降低了电子装置的制造 成本,然而,由于片上系统装置包含有多个功能模块(flmctional module),并 且这些功能模块各自包含有相对应的存储器,因此片上系统装置的制造成本 仍然居高不下。此外,在片上系统装置中,全部存储器占据了大部分芯片面 积,举例来说,片上系统装置内部的存储器区块可能会占据大约百分之七十 的芯片面积。在片上系统装置的相关技术中, 一般都是将一个静态随机存取存储器 (static random access memory, SRAM)分配给一个片上系统装置中的一个功 能模块,并且存储器的分配是根据这些功能模块的特性(例如所需的存储器 大小以及数据位长度)来完成,此外,每一个静态随机存取存储器都包含有 多个存储器单元(memory cell),其中每一个存储器单元一般都仅储存有一位的 信息。上述这种片上系统装置会出现一种问题,就是分布于不同功能模块中的 多个静态随机存取存储器一般来说并非同时会被存取,因此造成一些闲置的 静态随机存取存储器维持在未被使用的状态。发明内容为减少存储器在片上系统装置中占据的面积,本发明提供了一种存储器 共享方法。依据本发明的权利要求,其是揭示一种用于目标模块与至少一功能模块 的存储器共享方法,其中功能模块包含有至少一静态随机存取存储器,该存 储器共享方法包含有计算功能模块的存储器容量;如果模块群组的总存储器容量满足目标模块的存储器容量需求,则分配模块群组的静态随机存取存储器,其中模块群组包含有至少一功能模块;利用目标模块来存取模块群组 的功能模块的静态随机存取存储器。本发明提供一种应用于片上系统装置的存储器共享方法,该方法使系统 中多个模块共用静态随机存取存储器,减少片上系统装置中所需要配置的静 态随机存取存储器的数量,从而减小存储器区块占据的片上系统装置的面积, 并降低生产成本。
图1所示为依据本发明的第一实施例说明在片上系统装置中用于目标模块与至少一功能模块的存储器共享系统。图2所示为举例说明图1中的目标模块的存储器共享配置设定的示意图。 图3所示为概述本发明提供图1所示的存储器共享系统的方法流程图。 图4所示的为依据本发明的第二实施例说明在片上系统装置中用于目标模块与至少一功能模块的存储器共享系统。图5所示为举例说明图4中的目标模块的存储器共享配置设定的示意图。 图6所示为概述本发明提供图4所示的存储器共享系统的方法流程图。 图7所示为依据本发明的第三实施例说明在片上系统装置中用于目标模块与至少一功能模块的存储器共享系统。 图8所示为图7中屏蔽装置的示意图。图9所示为利用本发明的写入屏蔽装置来举例说明第一功能模块的数据写入操作的示意图。图IO所示为利用本发明的读取屏蔽装置来举例说明第一功能模块的数据 读取操作的示意图。图11所示为概述利用本发明的屏蔽装置来存取第一功能模块中的第一静 态随机存取存储器的方法流程图。
具体实施方式
在本说明书以及权利要求书当中使用了某些词汇来指称特定的系统组 件,而所属领域中的相关技术人员应可理解,消费电子设备制造商可能会用 不同的名词来称呼同一个组件,本说明书及权利要求书并不以名称的差异来 作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则,在通 篇说明书及后续的请求项当中所提及的"包含有"为一个开放式的用语,故 应解释成"包含有但不限定于",此外,"耦接" 一词在此表示任何直接及间 接的电气连接手段,因此,若文中描述第一装置耦接于第二装置,则代表第 一装置可以直接电气连接于第二装置,或通过其它装置或连接手段间接地电 气连接至第二装置。请参考图1,图1所示为依据本发明的第一实施例说明在片上系统装置中用于目标模块102与至少一功能模块(即本实施例中的两个功能模块104、106) 的存储器共享系统100。第一功能模块104包含有第一静态随机存取存储器 110,第二功能模块106包含有第二静态随机存取存储器112,存储器共享系 统IOO包含有计算装置114、存储器分配装置116以及存储器控制装置101。 其中,计算装置114用于计算功能模块104、 106的存储器容量;而如果模块 群组(module group)的总存储器容量满足目标模块102的存储器容量需求,则 存储器分配装置116会分配模块群组的静态随机存取存储器,其中模块群组 包含有至少一功能模块;存储器控制装置101用于存取模块群组中功能模块 的静态随机存取存储器。在此请注意,为了能够更清楚地描述本发明的精神,在本实施例中,模块群组仅包含有上述的第一功能模块104以及第二功能模 块106,然而,在另一实施例中,模块群组则可以包含有目标模块102、第一 功能模块104以及第二功能模块106。每一静态随机存取存储器的容量等于地 址的数量与数据位的数量的乘积。在本实施例中,目标模块102本身没有配 置任何内部的静态随机存取存储器,并且存储器控制装置101用来让目标模 块102可以共享分别被分配给第一功能模块104以及第二功能模块106的第 一静态随机存取存储器110以及第二静态随机存取存储器112。另外,在此请 注意,上述的实施例中所设置的模块的数量以及静态随机存取存储器的数量 仅作为本发明的范例说明,更明确地来说, 一个目标模块仅共享两个静态随 机存取存储器并不是本发明的限制条件。接着,本说明书将在以下段落中利 用一个范例来说明共享存储器的操作细节。请再参考图l,在片上系统装置的正常操作模式中,目标模块102需要一 个大小为(110X20)的存储器容量,第一功能模块104需要一个大小为(162 X12)的存储器容量,第二功能模块106需要一个大小为(128X9)的存储 器容量,其中,上述数值IIO、 162以及128分别为地址的数量,数值20、 12 以及9分别为数据位的数量。此外,目标模块102、第一功能模块104以及第 二功能模块106并不是同时被启动。为了确认在第一功能模块104以及第二功能模块106中的总存储器容量 符合目标模块102的存储器容量需求,计算装置114会计算第一静态随机存 取存储器110以及第二静态随机存取存储器112的存储器容量,其分别为162 X12以及128X9,并且得到总存储器容量为162X12+128X9。接着,计算 装置114会将目标模块102所需要的存储器容量110X20与总存储器容量162 X 12 + 128X9进行比较,并且得知总存储器容量162X12 + 128X9不小于目 标模块102所需要的存储器容量110X20,即(162X12+128X9) ^110X20。 因此,由于第一功能模块104以及第二功能模块106中的总存储器容量符合 目标模块102的存储器容量需求,所以本发明的存储器共享方法便可以在存储器共享系统100中进行操作。接着,计算装置114会进一步分别计算第一静态随机存取存储器110以 及第二静态随机存取存储器112的地址的数量与数据位的数量,以决定本发 明用于存储器共享系统100中的存储器共享机制。由于第一功能模块104以 及第二功能模块106的地址的数量均大于110,并且上述两个功能模块的数据 位的数量均小于20,而上述两个功能模块的数据位的数量的总和(即12+9 =21)并不小于20,这意味着当第一功能模块104以及第二功能模块106还 没被启动时,目标模块102的数据可以被直接存取到第一静态随机存取存储 器110以及第二静态随机存取存储器112。因此,存储器分配装置116将第一 静态随机存取存储器110 (即具有大小为(162X12)的存储器容量的单一存 储器芯片)分配到第一功能模块104,以及将第二静态随机存取存储器112(即 具有大小为(128X9)的存储器容量的单一存储器芯片)分配到第二功能模 块106。当第一功能模块104以及第二功能模块106还没被启动时,片上系统装 置先启动目标模块102以及存储器控制装置101,然后再启动该存储器共享机 制。请参考图2,图2所示为举例说明图1中的目标模块102的存储器共享机 制配置设定的示意图。如前所述,目标模块102的操作需要一个大小为(110 X20)的存储器容量,其中110个地址中的每一个地址均对应于20个数据位。 如图2所示,存储器控制装置101将第一静态随机存取存储器110以及第二 静态随机存取存储器112虚拟合并来提供目标模块102所需的适合的存储器 容量。在本实施例中,存储器控制装置101直接将目标模块102所请求的地 址传送给第一静态随机存取存储器110以及第二静态随机存取存储器112,来 分别存取Ml个数据位(例如12个数据位)以及Nl个数据位(例如8个数 据位)。在此请注意,Ml以及N1的总和(即M1+N1)等于20,此外,根 据各种不同的设计需求,Ml以及N1的数值为可弹性设定的,同时被选择用来跟目标模块102—起共享的数据位也是可弹性设定的。换句话说,在M1十 Nl=20的情况下,任何Ml个数据位都可以从第一功能模块104的第一静态 随机存取存储器110中选出,任何N1个数据位都可以从第二功能模块106的 第二静态随机存取存储器112中选出,举例来说,ll个数据位可以从第一功 能模块104的第一静态随机存取存储器110的任一部分中选出,以及另外9 个数据位可以从第二功能模块106的第二静态随机存取存储器112的任一部 分中选出,以响应由目标模块102所传送出的特定地址的请求,如此一来, 没有配置内部静态随机存取存储器的目标模块102便可以通过该存储器共享 机制来正常地操作。请参考图3,图3所示为概述本发明提供图1所示的存储器共享系统100 的方法流程图。假如实质上可以得到相同的结果,则流程中的步骤不一定需 要照图3所示的顺序来执行,该步骤也不一定需要是连续的,也就是说,这 些步骤之间可以插入其它的步骤。本发明的方法包含有下列步骤步骤302:决定需要进行存储器共享操作的目标模块102,其中目标模块102需要大小为(110X20)的存储器容量。步骤304:定义包含有至少第一功能模块104以及第二功能模块106的模 块群组,其中第一功能模块104具有大小为(162X12)的存储器容量,以及 第二功能模块106具有大小为(128X9)的存储器容量。步骤306:计算第一功能模块104以及第二功能模块106的存储器容量, 以确认该存储器容量符合目标模块102的存储器容量需求,即(162X12 + 128 X9) ^110X20。步骤308:检査第一功能模块104以及第二功能模块106的地址数量是否 均大于110,以及第一功能模块104以及第二功能模块106的数据位数量是否 均小于20,以及第一功能模块104以及第二功能模块106的数据位数量的总 和是否不小于20。步骤310:分别将第一静态随机存取存储器110以及第二静态随机存取存储器112分配给第一功能模块104以及第二功能模块106,其中第一静态随机 存取存储器110的存储器容量为(162X12),以及第二静态随机存取存储器 112的存储器容量为(128X9)。步骤312:当第一功能模块104以及第二功能模块106都还没被启动时, 启动目标模块102。步骤314:当第一功能模块104以及第二功能模块106都还没被启动时, 分别将Ml个数据位(即12个数据位)以及Nl个数据位(即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需要 一个大小为(110X24)的存储器容量,并且第一功能模块404需要一个大小 为(162X12)的存储器容量,以及第二功能模块406需要一个大小为(128 X9)的存储器容量,其中,上述数值IIO、 162以及128分别为地址的数量, 而数值24、 12以及9则分别为数据位的数量,此外,目标模块402、第一功 能模块404以及第二功能模块406并非同时被启动。与第一实施例相似,计算装置414会将目标模块402所需要的存储器容 量110X24与第一功能模块404以及第二功能模块406的总存储器容量162 X 12+128X9进行比较,并且得到总存储器容量162X 12+128X9不小于目 标模块402所需要的存储器容量110X24,即(162X12 + 128X9) ^110X24。接着,计算装置414会进一步分别计算第一静态随机存取存储器410以 及第二静态随机存取存储器412的地址的数量与数据位的数量,以决定本发 明用于存储器共享系统400中的存储器共享机制。由于第一功能模块404以 及第二功能模块406的地址的数量均大于110,并且上述两个功能模块404、 406的数据位的数量均小于24,上述两个功能模块的数据位的数量的总和(即 21)也小于24,这意味着当第一功能模块404以及第二功能模块406还没被 启动时,目标模块402的数据并无法被直接存取到第一静态随机存取存储器 410以及第二静态随机存取存储器412。然而,由于在第一功能模块404以及 第二功能模块406中的总存储器容量符合目标模块402的存储器容量需求, 即(162X12+128X9) ^110X24,因此,存储器分配装置416将第一静态 随机存取存储器410(其是由实体上各自独立的多个静态随机存取存储器芯片 所构成,且具有大小为(162X 12)的总存储器容量)分配到第一功能模块404, 以及将第二静态随机存取存储器412(其是由实体上各自独立的多个静态随机 存取存储器芯片所构成,且具有大小为(128X9)的总存储器容量)分配到 第二功能模块406。用来组成第一静态随机存取存储器410的静态随机存取存储器芯片的数 量通过进行无条件进位(roundup)操作来决定,也就是由计算装置414来计 算一个大于但最接近的整数。该无条件进位操作根据等于目标模块402所需 要的存储器容量的数据位数量(即24)除以第一功能模块404所需要的存储 器容量的数据位数量(即12)的数值来进行。用于组成第二静态随机存取存 储器412的静态随机存取存储器芯片的数量通过进行根据等于目标模块402 所需要的存储器容量的数据位数量(即24)除以第二功能模块406所需要的 存储器容量的数据位数量(即9)的数值的无条件进位操作来决定。因此第一静态随机存取存储器410便可以具有一个大小为(162X12)的 总存储器容量,并且这是由两个分别具有大小为(81X12)的存储器容量的 独立静态随机存取存储器芯片所构成,而这些存储器被分配到第一功能模块 404。此外,具有大小为(128X9)的总存储器容量,并且由三个分别具有大 小为(43X9)的存储器容量的独立静态随机存取存储器芯片所构成的第二静 态随机存取存储器412被分配到第二功能模块406。在此请注意,在第一静态 随机存取存储器410中,每一存储器芯片的地址数量(即81)以及在第二静 态随机存取存储器412中每一存储器芯片的地址数量(即43)的总和不应该 小于目标模块402所需要的地址数量。另外,请注意,在本发明中,第一静 态随机存取存储器410以及第二静态随机存取存储器412并不限制于使用实 体上各自独立的多个静态随机存取存储器芯片,本领域的相关技术人员应该 能了解在这方面也可以利用存储器分配装置416来将第一静态随机存取存储 器410程序化分割为多个虚拟独立的静态随机存取存储器芯片,并且同样具 有上述的存储器容量,另外,第二静态随机存取存储器412也同样可以进行 如此处理。当第一功能模块404以及第二功能模块406还没被启动时,片上系统装 置启动目标模块402,存储器控制装置401开始使能存储器共享机制。请参考图5,图5所示为举例说明图4中目标模块402的存储器共享机制配置设定的示意图。第一静态随机存取存储器410以及第二静态随机存取存 储器412分别具有实体上各自独立的多个静态随机存取存储器芯片,并且这 些静态随机存取存储器芯片可以被重新排列以组成如图5所示的存储器配置 设定。换句话说,第一静态随机存取存储器410对应于大小为(81X24)的 存储器容量,以及第二静态随机存取存储器412对应于大小为(43X27)的 存储器容量。因此,存储器控制装置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需要大小为(110X24)的存储器容量。步骤604:定义包含有至少第一功能模块404以及第二功能模块406的模 块群组,其中第一功能模块404需要大小为(162X12)的存储器容量,以及 第二功能模块406需要大小为(128X9)的存储器容量。步骤606:计算第一功能模块404以及第二功能模块406的存储器容量, 以确认该存储器容量符合目标模块402的存储器容量需求,即(162X12+128 X9) ^110X24。步骤608:检查第一功能模块404和第二功能模块406的地址数量是否均 大于110,以及第一功能模块404和第二功能模块406的数据位数量是否均小 于24,还有第一功能模块404和第二功能模块406的数据位数量的总和是否 也小于24。步骤610:进行无条件进位(roundup)操作,以分别将第一静态随机存 取存储器410以及第二静态随机存取存储器412分配给第一功能模块404以 及第二功能模块406,其中第一静态随机存取存储器410的存储器容量由两个 分别具有大小为(81X12)的存储器容量的实体上彼此独立的静态随机存取 存储器芯片所构成,以及第二静态随机存取存储器412的存储器容量由三个 分别具有大小为(43X9)的存储器容量的实体上彼此独立的静态随机存取存 储器芯片所构成,此外,目标模块402需要一个大小为(110X24)的存储器 容量,并且第一功能模块404需要一个大小为(162X12)的存储器容量,以 及第二功能模块406需要一个大小为(128X9)的存储器容量。步骤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 X24)的存储器容量的单一存储器芯片被视为分别具有大小为(81X12)的 存储器容量的两个读/写区块,其中,在目标模块702共享第一功能模块704 的静态随机存取存储器时,这两个读/写区块的采用依循应用于上述第二实施 例的规则。同样地,对于第二静态随机存取存储器712而言,具有大小为(43 X27)的存储器容量的单一存储器芯片被视为分别具有大小(43X9)的存储 器容量的三个读/写区块。第一静态随机存取存储器710的数据位的总数以及 第二静态随机存取存储器712的数据位的总数分别为24与27,如图7所示, 这等于或大于目标模块702所需要的数据位的总数24。此外,第一静态随机 存取存储器710以及第二静态随机存取存储器712的地址的总数为124,其大 于目标模块702所需要的地址的总数110,而两个分别具有大小为(81X12) 的存储器容量的存储器芯片的整体芯片面积大于具有大小为(81X24)的存 储器容量的单一存储器芯片的整体芯片面积,因此,相较于第二实施例,本 发明的第三实施例提供一个成本较低的解决方案。另一方面,当目标模块702还没被启动,而第一功能模块704或第二功 能模块706被启动时(例如第一功能模块704被启动时),在第一功能模块704 中的第一静态随机存取存储器710需要被第一功能模块704所存取,然而, 由于第一静态随机存取存储器710的存储器容量为(81X24),而不是(162 X12),所以应该在存储器共享系统700中使用一种屏蔽机制(masking mechanism),如此一来,为了使得第一功能模块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-l multiplexer)724用来作为读取屏蔽装置714b,其 中第一与门720的第一输入端耦接于特定地址的最低位,第二输入端耦接于 所需要的数据位,输出端耦接于第一静态随机存取存储器710以及第二静态 随机存取存储器712;而第二与门722的第一输入端耦接于特定地址中最低位 的反相,第二输入端耦接于所需要的数据位,输出端耦接于第一静态随机存 取存储器710以及第二静态随机存取存储器712。当第一功能模块704将数据DATAin写入第一静态随机存取存储器710 时,其中数据DATAin为12位的数据并且具有地址ADR,则地址ADR的最 低位ADR—A[O]会被输入到第一与门720的第一输入端,反相的最低位 ~ADR—A[O]会被输入到第二与门722的第一输入端,因此,当数据DATAin 被写入第一静态随机存取存储器710时,第一与门720以及第二与门722的 其中之一就会被开启。请参考图9,图9所示为利用本发明的写入屏蔽装置 714a来举例说明第一功能模块704的数据写入操作的示意图。为了简单说明起见,图8与图9中只有显示应用于第一功能模块704的电路组件,然而, 屏蔽装置714另包含有其它类似的电路组件(未显示)应用于第二功能模块 706。其中,当第一功能模块704在操作时,其相对应的写入屏蔽装置714a 依据最低地址位ADR—A[O]来屏蔽24个数据位的前半部分或后半部分(即如 图9中所示的710a或710b的部分),以将数据DATAin写入第一静态随机存 取存储器710,因此,从第一功能模块704的方面来看,通过写入屏蔽装置的 帮助,第一静态随机存取存储器710等于具有存储器容量(162X12)的静态 随机存取存储器。举例来说,请参考图9,当第一功能模块704将数据写入第 一静态随机存取存储器710时,如果与写入请求相关的地址ADR—A[O]的最低 位为1,则与24个数据位的前半部分的相对应的12位数据就会被写入到对应 于该地址的前面12个数据位(即710a的部分);然而,当第一功能模块704 将数据写入第一静态随机存取存储器710时,如果该地址的最低位为O,则与 24个数据位的后半部分的相对应的12位数据就会被写入到对应于该地址的后 面12个数据位(即710b的部分)。另一方面,当第一功能模块704从第一静态随机存取存储器710中读取 数据DATAout时,其中数据DATAout为12位的数据并且具有地址ADR,但 是第一静态随机存取存储器710所输出的数据为24个位,所以地址ADR的 最低位ADR—A[O]'被输入到多任务器724中,并且最低位ADR一A[O]'决定多 任务器724要输出数据DATAout中所需的12个位数据。如图10所示,图10 所示为利用本发明的读取屏蔽装置714b来举例说明第一功能模块704的数据 读取操作的示意图。对于读取屏蔽装置714b而言,读取屏蔽装置714b用于 依据与读取请求相关的最低地址位ADI^A
'来屏蔽24个数据位的前半部分 或后半部分以作为输出数据DATAout。请参考图IO,当第一功能模块704读 取第一静态随机存取存储器710时,对应于与读取请求相关的地址704c的全 部24个数据位会从第一静态随机存取存储器710中读取出来,同样地,全部 24个数据位是从图10中所示的710a与710b的部分输出。如果该相关地址的最低位ADR一A
'为1,则多任务器724就会依据710a的部分中24个数据位 的前半部分的地址来输出前面的12个数据位,而如果该相关地址的最低位 ADI^A
'为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。假如实 质上可以得到相同的结果,则流程中的步骤不一定需要照图ll所示的顺序来 执行,也不一定需要是连续的,也就是说,这些步骤之间可以插入其它的步 骤。本发明的方法包含有下列步骤
步骤802:不启动目标模块702。
步骤804:当特定地址被分配到第一功能模块704时,启动第一功能模块 704中的第一静态随机存取存储器710。
步骤806:决定第一功能模块704中的第一静态随机存取存储器710的操 作,如果该特定地址所需要的数据位需要被写入到第一静态随机存取存储器710中,则进行步骤808;如果对应于该特定地址的数据位需要被从第一静态 随机存取存储器710中读取出来,则进行步骤812。
步骤808:利用该特定地址的最低位ADR^A
来决定与该特定地址相关 的哪一部分的12个数据位中会被存取。
步骤810:如果最低位ADR一A[O]为1,则将12个数据位写入到24个数 据位的前半部分(即710a的部分);如果最低位ADI^A
为0,则将12个 数据位写入到24个数据位的后半部分(即710b的部分)。
步骤812:利用该特定地址的最低位ADR—A[O]'来决定与该特定地址相关 的哪一部分的12个数据位会被选取。
步骤814:如果最低位^尺_八
'为1,则从24个数据位的前半部分(即 710a的部分)中选取12个数据位;如果最低位ADR—A[O]'为0,则从24个 数据位的后半部分(即710b的部分)中选取12个数据位。
同样地,对于存取第二功能模块706的情况,本发明方法是参考最低的 两个地址位来将9位数据输入到高、中、低各9个数据位其中之一,并且读 取屏蔽装置714b参考最低的两个地址位来从高、中、低各9个数据位中选择 其中之一来输出数据。
在此请注意,虽然在上述的实施例中,目标模块与功能模块不是同时被 启动,但这并不是本发明的限制条件,换句话说,目标模块与功能模块的其 中 一些功能模块是可以同时被启动的。
以上所述仅为本发明的较佳实施例,凡依本发明权利要求范围所做的均 等变化与修饰,皆应属本发明的涵盖范围。
权利要求
1.一种存储器共享方法,适用于目标模块与至少一功能模块,该功能模块包含有至少一静态随机存取存储器,该存储器共享方法包含有a、计算该功能模块的存储器容量;b、如果模块群组的总存储器容量满足该目标模块的存储器容量需求,则分配该模块群组的静态随机存取存储器,其中该模块群组包含有至少一功能模块;以及c、利用该目标模块来存取该模块群组的功能模块中的该静态随机存取存储器。
2. 如权利要求1所述的存储器共享方法,其特征在于,该目标模块与该 功能模块不是同时被启动。
3. 如权利要求1所述的存储器共享方法,其特征在于,该模块群组另包 含有该目标模块。
4. 如权利要求1所述的存储器共享方法,其特征在于,该目标模块的该 存储器容量需求为地址数X与位数Y的乘积,而在该模块群组中的功能模块 数量为m,且在该模块群组中实体上彼此独立的静态随机存取存储器数量为 n,而第i个静态随机存取存储器具有地址数Xi与位数Yi,该第i个静态随机 存取存储器的容量为Xi与Yj的乘积,并且i不大于n。
5. 如权利要求4所述的存储器共享方法,其特征在于,当每一个该地址 数Xi不小于X,以及每一个该位数Yi的总和不小于Y时,其中i二l n,步骤 b包含有将至少一个该第i个静态随机存取存储器的一部分设定为被分配的静态 随机存取存储器,其具有位数Yj—fcst以及该地址数X,以满足该目标模块的该 存储器容量需求,其中每一该位数Yj—f^的总和等于Y,并且i不大于n。
6. 如权利要求5所述的存储器共享方法,其特征在于,当具有特定地址的目标数据被该目标模块所选择时,对应于该特定地址的被分配的静态随机 存取存储器被选择。
7. 如权利要求4所述的存储器共享方法,其特征在于,步骤b包含有 将每一第i个静态随机存取存储器重新分配为ni个被分配的静态随机存取存储器,而每一该ni个被分配的静态随机存取存储器均具有位数Yy以及地 址数Xi—fct,且该地址数Xj—fet等于X/ni,其中i二l n, j = l ni,而至少其 中一个ni大于2,且每一第i个静态随机存取存储器的每一该位数Yjj的总和 不小于Y,以及每一该地址数Xi—fRSt总和不小于X。
8. 如权利要求7所述的存储器共享方法,其特征在于,每一该地址数Xi 不小于X,以及每一该位数Yj的总和不小于Y。
9. 如权利要求7所述的存储器共享方法,其特征在于,该ni个被分配的 静态随机存取存储器的每一该位数Yij具有相同的数值。
10. 如权利要求7所述的存储器共享方法,其特征在于,该iii个被分配的 静态随机存取存储器实体上彼此独立。
11. 如权利要求4所述的存储器共享方法,其特征在于,步骤b包含有 将每一第i个静态随机存取存储器分配为iii个被分配的静态随机存取存储器,而每一该ni个被分配的静态随机存取存储器具有位数Yjj以及地址数 XLfiret,且该地址数Xi—fet等于X/rii,其中i = l n, j = l ni,而至少其中一 个ni大于2,且每一该第i个静态随机存取存储器的每一该位数Yij的总和不 小于Y,以及每一该地址数Xi—firet的总和不小于X。
12. 如权利要求11所述的存储器共享方法,其特征在于,当具有该位数Y 以及特定地址的目标数据被该目标模块所选择时,在特定静态随机存取存储 器中的被分配的静态随机存取存储器是依据该特定地址而被选择,该目标数 据是在频率周期循环内被读取。
13. 如权利要求11所述的存储器共享方法,其特征在于,当具有该位数Y 以及特定地址的目标数据被该目标模块所选择时,在特定静态随机存取存储器中的至少一被分配的静态随机存取存储器是依据该特定地址而被选择,且 该目标数据的一部分是在频率周期循环中被读取,该目标数据是利用将在多 个频率周期循环中分别被读取的该目标数据的多个部分结合后而得到。
14. 如权利要求1所述的存储器共享方法,其特征在于,该目标模块的该存储器容量需求为地址数X与位数Y的乘积,而在该模块群组中的功能模块 数量为m,且在每一功能模块中的每一静态随机存取存储器都是实体上彼此 独立的,而第i个静态随机存取存储器具有地址数Xi与位数Yi,以及该第i 个静态随机存取存储器的该存储器容量为Xj与Yj的乘积,并且Yj不小于Y, Xi小于X,而该模块群组的所有被分配的静态随机存取存储器的存储器容量 的总和不小于该目标模块的该存储器容量需求,以及步骤b包含有将每一该第i个静态随机存取存储器分配为A个被分配的静态随机存取 存储器,而每一该ni个被分配的静态随机存取存储器具有位数Y以及地址数 Xi—used,并且每一该第i个静态随机存取存储器的每一该地址数Xi_used的总和 不小于X。
15. 如权利要求14所述的存储器共享方法,其特征在于,该Hi个被分配的 静态随机存取存储器是集成于单一静态随机存取存储器中。
16. 如权利要求14所述的存储器共享方法,其特征在于,当具有特定地址 的目标数据被该目标模块所选择时,对应于该特定地址的被分配的静态随机 存取存储器被选择,并且这些被选择到的被分配的静态随机存取存储器是依 据各自目标的位数而被存取。
17. 如权利要求16所述的存储器共享方法,其特征在于,另包含有 将该模块群组中的至少一功能模块的静态随机存取存储器启动;以及 当该已启动的功能模块请求具有特定地址的所需要的数据位时,参考该特定地址来存取该已启动的功能模块中的已启动的静态随机存取存储器。
18. 如权利要求17所述的存储器共享方法,其特征在于,参考该特定地址 来存取该已启动的功能模块中的该已启动的静态随机存取存储器的步骤包含有利用该特定地址的至少一最低位来决定要存取与该特定地址相关的数据
全文摘要
本发明提供一种用于目标模块以及至少一功能模块的存储器共享方法,其中功能模块包含有至少一静态随机存取存储器。存储器共享方法包含有计算功能模块的存储器容量;如果模块群组的总存储器容量满足目标模块的存储器容量需求,则分配模块群组的静态随机存取存储器,其中模块群组包含有至少一功能模块;利用目标模块来存取模块群组的功能模块的静态随机存取存储器。本发明提供的存储器共享方法,可减少片上系统装置中所需要配置的静态随机存取存储器的数量,从而减小存储器区块占据的片上系统装置的面积,并降低生产成本。
文档编号G06F12/02GK101231616SQ200710180370
公开日2008年7月30日 申请日期2007年10月23日 优先权日2007年1月22日
发明者杜立群, 陈志卿 申请人:联发科技股份有限公司