首页> 中国专利> 共享代码的系统与代码共享方法

共享代码的系统与代码共享方法

摘要

本发明提供一种共享代码的系统与代码共享方法。该系统包含存储器与多个处理器。该存储器进一步包含共享区段与非共享区段。该多个处理器至少包含第一处理器与第二处理器,该第一处理器与该第二处理器具有该存储器的该共享区段的只读存取权限。该第一处理器与该第二处理器分别执行该存储器的该共享区段中存储的共享代码,并且分别执行该非共享区段的第一子区段与第二子区段中存储的非共享代码。该第一处理器与该第二处理器分别根据第一调度器与第二调度器,执行共享代码。该第一调度器独立于该第二调度器工作。本发明提供的共享代码的系统与代码共享方法可节省成本。

著录项

  • 公开/公告号CN112783823A

    专利类型发明专利

  • 公开/公告日2021-05-11

    原文格式PDF

  • 申请/专利权人 联发科技股份有限公司;

    申请/专利号CN202010493139.X

  • 发明设计人 冯啸慈;张家维;姚立三;

    申请日2020-06-03

  • 分类号G06F15/173(20060101);G06F3/06(20060101);

  • 代理机构11111 北京市万慧达律师事务所;

  • 代理人盛安平;段晓玲

  • 地址 中国台湾新竹市新竹科学工业园区笃行一路一号

  • 入库时间 2023-06-19 10:57:17

说明书

技术领域

本发明总体上有关于系统处理。特别地,有关于一种具有对至少一部分存储器子系统共享存取之多处理器计算系统。

背景技术

现代计算系统通常具有多个处理器,每个处理器具有其自身专用存储器。由于有限形态因素,移动装置系统(例如,智能手机)通常为其用户提供有限的存储器容量。随着多媒体内容的存储需求增长,存储器容量方面也存在增长的需求。由于漏电流,增长的存储器容量导致功耗增大,另外由于更高的门数,成本也相应增高。因此,在不向系统增加更多存储器情况下有效利用现存存储器容量可显著改善系统的性能与成本。

对于有效存储器使用,已经提出了多个方法。然而,特别地对于存储器受限多处理器系统需要设计策略。

发明内容

在实施例中,提供一种共享代码的系统。该系统包含存储器与多个处理器。该存储器进一步包含共享区段(section)与非共享区段。该多个处理器至少包含第一处理器与第二处理器,该第一处理器与该第二处理器具有该存储器的该共享区段的只读存取权限。该第一处理器与该第二处理器分别执行该存储器的该共享区段中存储的共享代码,并且分别执行该非共享区段的第一子区段与第二子区段中存储的非共享代码。该第一处理器与该第二处理器分别根据第一调度器与第二调度器,执行共享代码。该第一调度器独立于该第二调度器工作。

在另一实施例中,提供一种多个处理器中代码共享方法。该方法包含:将共享代码存储在存储器的共享区段并且将非共享代码存储在该存储器的非共享区段;由第一处理器根据第一调度器执行该共享区段中的该共享代码;以及由第二处理器根据第二调度器执行该共享区段中的该共享代码。该第一处理器与该第二处理器具有该共享区段的只读存取权限,并且该第二调度器独立于该第一调度器工作。

本发明提供的共享代码的系统与代码共享方法可节省成本。

其它实施方式和优点在下面的详细描述中描述。该发明内容并不打算限定本发明。本发明由权利要求书限定。

附图说明

附图说明透过示例而非限制的方式描述本发明,其中,相同的附图标记标识相似组件。应当注意的是,本发明中对一个实施例的不同参考并不一定是相同实施例,并且这种参考意味着至少一个。此外,当结合实施例描述特定特征、结构或特性时,无论是否明确描述,主张本领域技术人员获知结合其他实施例的该特征、结构或特性。

图1描述了本发明实施例可工作的系统。

图2是依据实施例描述了地址映射或重定向的示意图。

图3是依据实施例描述了代码共享方法的流程图。

图4依据实施例描述了移动装置示例。

具体实施方式

在此揭示本发明的详细实施例。然而,可以理解的是,本实施例仅是为了描述本发明的各种形式。然而,本发明可以各种不同形式进行呈现,并不一定限定于本发明所述实施例。提供这些实施例是为了本发明描述更彻底完整,并向本领域技术人员全面表述本发明范围。在接下来描述中,将忽略已知特征与技术,从而避免对本发明实施例描述的不必要干扰。

本发明实施例提供了多个处理器存取的存储器中共享可执行代码的系统与方法。也可在处理器之间共享存储器中只读数据。处理器根据其各自独立调度器执行指令。在不将共享代码复制入存储器的处理器各自非共享子区段(section)情况下,处理器执行该共享代码。因此,可显著降低共享代码与数据占用的存储器数量,并且由此降低了装置中存储器容量需求。装置中存储器数量直接正比于装置的门数、漏电流与成本。同样地,这里描述的代码与数据共享可提高存储器的有效使用率,并且因此可改善包含存储器的装置的性能与成本。

图1是依据实施例描述了系统100的区块图。系统100包含两个或多个处理器,例如,第一处理器110与第二处理器120。在许多实施例中,可将处理器称为处理器核心、微处理器、核心、多核心处理器、计算单元、执行单元、处理电路等。接下来的描述使用两个处理器作为示例;然而,可以理解的是,将该描述应用于共享存取相同存储器的多于两个处理器。

第一处理器110与第二处理器120可具有相同或兼容的指令集结构(InstructionSet Architecture,ISA),其使得处理器能执行来自相同或兼容的指令集的指令。在许多实施例中,在相同或兼容ISA实施中,处理器110与120可具有不同微结构。兼容ISA的示例可包含相同处理器结构序列(例如,

在实施例中,分别根据调度器115与125调度的任务,第一处理器110与第二处理器120执行指令。任务包含指令集。调度器115与125彼此独立工作;例如,调度器115与125可将不同任务安排至各个处理器,以在给定时间中执行。当准备执行指令时,可发布已调度指令。第一处理器110与第二处理器120也包含各自发布电路(即,第一发布电路117与第二发布电路127)。第一发布电路117与第二发布电路127也彼此独立工作。此外,处理器110与120独立工作;更特别地,通过从各个调度器115与125以及各个发布电路117与127接收任务与指令。处理器110与120不从集中任务调度器及/或集中指令发布电路接收任务或指令。换句话说,处理器110与120可彼此独立执行指令(例如,用户与操作系统指令)。

第一处理器110与第二处理器120的每一个耦接至高速缓存集(aset of cachememory),例如,指令高速缓存(I高速缓存111或121)与数据高速缓存(D高速缓存113或123)。可使用高速缓存存储预取指令与频繁使用数据,以降低存取存储器140的延迟。在实施例中,I高速缓存111与121可存储预计重复执行的指令,例如,当型循环(while-loop)中的指令。在实施例中,第一处理器110、第二处理器120以及它们各自高速缓存可为片上系统(SoC)平台的一部分。在实施例中,SoC平台可为移动计算及/或通信装置、台式计算系统、服务器计算系统、云计算系统等的一部分。

在实施例中,第一处理器110与第二处理器120共享存取存储器140。存储器140可为系统100的系统存储器或主存储器。存储器140可包含随机存取存储器(RAM)装置,例如,动态随机存取存储器(DRAM)装置、闪存装置及/或其他易失性或非易失性存储器装置。存储器140也可包含用于存储只读数据或只读代码(例如,共享代码)的只读存储器(ROM)。第一处理器110与第二处理器120可经由本地总线130或另一类型连接,存取存储器140。

在实施例中,存储器140包含共享区段与非共享区段。例如,共享区段可包含通用代码区域141与通用只读(RO)数据区域142。共享区段是写保护的(例如,只读)以确保数据完整性。可将非共享区段分割为多个子区段,其中,将每个子区段分配至一个处理器。例如,为第一处理器110分配第一子区段,该第一子区段包含第一代码区域143与第一读写(RW)数据区域144。为第二处理器120分配第二子区段,该第二子区段包含第二代码区域145与第二RW数据区域146。

通用代码区域141存储两个或多个处理器共享的程序。例如,多个处理器可共享测量执行时间的程序。第一处理器110与第二处理器120彼此独立执行通用代码区域141中的共享代码。在无需将共享程序副本保存在每个非共享子区段情况下,使用通用代码区域141存储共享程序可显著节省存储器140的存储空间。相似地,通用RO数据区域142存储两个或多个处理器共享的只读数据。例如,该共享数据可包含通用代码区域141中存储的共享程序所用的输入参数。其他共享只读数据也可被存储在通用RO数据区域142。通用RO数据区域142的使用也可显著节省存储器140的存储空间。

在实施例中,处理器110与120可同时或不同时在程序执行期间读取存储器140的共享区段。可将执行结果写入其各自非共享子区段。

通用代码区域141存储处理器110与120可执行的机器可执行指令。机器可执行指令可指定源操作数(例如,输入数据)及/或目标操作数(例如,执行结果)。例如,可从存储器140的共享区段中给定存储器地址加载源操作数。在许多情况中,源操作数及/或目标操作数可位于存储器140的非共享区段。在实施例中,当执行通用代码区域410中指令时,可将相同存储器地址或指针提供给第一处理器110与第二处理器120。该存储器地址或指针可指向仅第一处理器110存取第一RW数据区域144处的存储器位置。在运行时,可将该存储器地址或指针映射或重定向至仅第二处理器120存取第二RW数据区域146处的另一存储器位置。软件或硬件可执行该映射或重定向步骤,下面参考图2提供技术细节。

图2是依据实施例描述了处理器110与120执行的存储器操作(例如,加载或存储)的示意图。当执行存储在通用代码区域141的指令时,处理器110与120可从存储器140读取数据,并且可生成写回至存储器140的执行结果。在实施例中,处理器110与120两者可同时或不同时执行具有第一RW数据区域144中第一地址处操作数的读/写(例如,加载/存储)指令。第一处理器110可在第一地址处读或写,另外第二处理器120可在映射至第一地址的第二地址处读或写。在实施例中,第二处理器120可在运行时执行由存储器管理系统软件指示的地址映射方法。在另一实施例中,为耦接存储器140及/或第二处理器120的硬件电路250配置偏移值。当第二处理器120执行在第一地址处具有操作数的读/写指令时,硬件电路250将该偏移值加入第一地址,以生成在第二子区段处的第二地址,并且从第一地址至第二地址重定向第二处理器120的读/写操作。

在包含附加处理器(例如,大于两个)的系统中,可为硬件电路250配置每个附加处理器的不同偏移值,从而使得也可将这些附加处理器的读/写存取重定向至存储器140中各个非共享子区段。

图3依据实施例描述了代码共享的方法300。图1的系统100及/或图4的移动装置400,或者另一计算及/或通信装置可执行方法300。在实施例中,执行方法300的装置包含存储指令的电路(例如,处理硬件)与计算机可读介质(例如,存储器),其中,当执行该指令时会引起装置执行方法300。

参考图3,在实施例中,方法300开始于步骤310,将共享代码存储在存储器的共享区段,并且将非共享代码存储在存储器的非共享区段。在步骤320,第一处理器根据第一调度器执行共享区段中的共享代码。在步骤330,第二处理器根据第二调度器执行共享区段中的共享代码。第一处理器与第二处理器对共享区段具有只读存取权限。第二调度器独立于第一调度器工作。

在实施例中,装置100及/或移动装置400可包含两个或多个处理器共享存储器共享区段中的可执行代码,而不用将共享代码复制至其各自非共享子区段。在根据共享代码的实施例中,第一处理器与第二处理器可执行具有第一子区段中第一地址处操作数的读/写指令,并且在运行时,第二处理器可根据地址映射方法将第一地址映射至第二子区段的第二地址。在另一实施例中,在运行时,硬件电路可将第二处理器执行的读/写操作从第一子区段中第一地址重定向至第二子区段中第二地址。在实施例中,第一处理器与第二处理器也可共享存储器共享区段中存储的只读数据。

图4依据实施例描述了移动装置400的示例。移动装置400可为图1的装置100的示例,其提供用于上述视频记录的平台。移动装置400包含处理电路410,其进一步包含处理器415(例如,中央处理单元)、图像处理单元(GPU)、数字处理单元(DSP)、多媒体处理器、其他通用及/或专用处理电路。在许多系统中,处理器415可与“核心”或“处理器核心”相同,另外在许多其他系统中,处理器可包含多个核心。每个处理器415可包含算数逻辑单元(ALU)、控制电路、高速缓存以及其他硬件电路。在实施例中,处理电路410工作以执行移动装置400上运行的软件(包含前述存储器管理系统软件)与应用。在实施例中,移动装置400工作以执行图3的方法300。

移动装置400进一步包含耦接至处理电路410的存储器420。存储器420包含类似于共享区段422与非共享区段423的分区。存储器420可包含存储器装置,例如,动态RAM装置、ROM装置、闪存及/或其他易失性或非易失性存储器装置。存储器420可进一步包含存储装置,例如,任意类型固态或磁性存储装置。在实施例中,存储器420可为移动装置400的主存储器或系统存储器。

移动装置400也可包含I/O电路430,以接收输入并显示输出。I/O电路430可进一步包含无线通信电路450,例如,天线、数字及/或逻辑射频(RF)收发器与RF电路。移动装置400可进一步包含电池490,以向移动装置400的硬件元件供电。

可以理解的是,为了描述目的,简化了图3的实施例。可增加附加硬件元件,并且可忽略图4所示的许多元件。

虽然本发明中使用移动装置400作为示例,但是可以理解的是可将本发明中的方法应用于包含多个处理器的任意计算及/或通信装置。移动装置400的无限制示例包含智能手机、智能手表、可穿戴装置、平板电脑、网络连接装置、游戏装置、导航装置、物联网(IoT)装置、图像处理装置、信息娱乐装置、阅读器装置以及其他可携带及/或可穿戴电子装置。

已经参考图1与图4的实施例描述了图3的流程图操作。然而,应当理解的是,不同于图1与图4所讨论实施例的其他本发明实施例可执行图3的流程图操作,并且图1与图4所讨论实施例可执行不同于流程图中所讨论的步骤。虽然图3的流程图显示本发明特定实施例执行操作的特定顺序,但应该理解的是,该顺序是示例性的(例如,替换实施例可按照不同顺序执行操作、组合特定操作、重迭特定操作等)。

上述已经描述了各种功能元件或区块。本领域技术人员可知,上述功能模块可通过电路(在一个或多个处理器以及代码指令控制下进行操作的专用电路、通用电路)进行实施,上述电路一般包含晶体管,其可依上述方式进行配置依据上述功能与操作控制电路运行。

虽然已经透过示例并且按照优选实施方式描述了本发明,但是要理解的是,本发明不限于此。熟悉该技术的人仍然能够在不脱离本发明的范围与精神的情况下进行各种变更与修改。因此,本发明的范围应当由所附的权利要求书及其等同物限定与保护。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号