用于管理电子装置的存储器的方法和电子装置与流程

文档序号:12142038阅读:334来源:国知局
用于管理电子装置的存储器的方法和电子装置与流程

本发明涉及一种用于管理包括异构存储器的电子装置的存储器的方法以及一种包括该方法的电子装置。



背景技术:

近期开发的电子装置(诸如智能电话、平板PC、PMP(便携式多媒体播放器)、PDA(个人数字助理)、膝上型PC和可穿戴装置)除了具备可移动性之外,还可执行各种功能,诸如游戏、SNS(社交网络服务)、互联网以及获取和执行多媒体图像和移动图像。

这种电子装置消耗低水平的电力以使得可被长时间携带且可包括用于实现高性能的处理器和存储装置,从而使得可执行需要高性能的功能(例如,游戏、移动图像回放)。正在研究包括在电子装置中的、在存储装置与处理器之间的各种类型的接口以实现低功耗和高性能。

例如,电子装置可包括至少一个异构存储器以实现低功耗和高性能。

用于通过处理器访问存储器接口的常规方法包括UMA(均匀存储器访问)和NUMA(非均匀存储器访问)。UMA方法将资源均匀地分配到存储器,而不管资源的特性和目的如何。



技术实现要素:

技术方案

相关技术的存储器管理方法不支持对具有不同特性的异构存储装置的管理。相关技术的存储器管理方法仅响应于存储器分配请求分配在整个存储器空间中的自由空间。自由空间指在整个存储器空间中未使用的空间。因此,根据相关技术的存储器管理方法,在不从异构存储装置选择特定存储装置的情况下,无法执行存储器分配。

本公开的各方面是用于至少解决上述问题和/或缺点并至少提供下述有益效果。相应地,本公开的一个方面为提供一种用于管理包括异构存储器的电子装置的存储器的方法,使得能根据数据类型和目的将数据分配到异构存储器。

根据本公开的一方面,提供了一种用于管理电子装置的存储器的方法。所述方法包括以下操作:分析待存储的数据;基于第一存储器的类型、第二存储器的类型和预设策略确定用于存储所述数据的一部分或全部的存储器;以及在所确定的存储器中存储所述数据的一部分或全部。

根据本公开的另一方面,提供了一种用于管理电子装置的存储器的方法。所述方法包括以下操作:确定与第一存储器和第二存储器相关联的存储器信息;以及配置用于将基于存储器信息分配到第一存储器和第二存储器的三个或更多区域的区域信息。

根据本公开的另一方面,提供了一种用于管理电子装置的存储器的方法。所述方法包括以下操作:识别插入电子装置中的添加的存储器;访问区域配置策略;确定将基于区域配置策略和存储器信息分配到添加的存储器的区域;以及基于所述确定配置区域信息。

根据本公开的另一方面,提供了一种电子装置。所述电子装置包括存储器和控制器,控制器配置成:分析待存储的数据;基于第一存储器的类型、第二存储器的类型和预设策略确定用于存储所述数据的一部分或全部的存储器;以及在所确定的存储器中存储所述数据的一部分或全部。

根据本公开的另一方面,提供了一种电子装置。所述电子装置包括:第一存储器;狭槽,配置成接纳第二存储器;以及控制器,配置成确定与第一存储器和第二存储器相关联的存储器信息以及配置关于将基于存储器信息分配到第一存储器和第二存储器的三个或更多区域的区域信息。

根据本公开的另一方面,提供了一种电子装置。所述电子装置包括第一存储器和控制器,控制器被配置成:识别添加到电子装置的第二存储器;访问区域配置策略;确定将基于区域配置策略和存储器信息分配到第二存储器的区域;以及基于确定结果配置区域信息。

本公开根据资源特性和目的将资源分配到异构存储器,从而优化对包括在电子装置内的异构存储器的使用率。

另外,本公开根据资源特性和目的将资源分配到异构存储器,从而改善电子装置的运行性能。

根据结合附图公开了本公开的各种实施方式的下列详细描述,本公开的其他方面、有益效果和显著特征对本领域技术人员而言将变得明显。

附图说明

根据结合附图的下列描述,本公开的某些实施方式的上述和其他方面、特征和有益效果将更加明显,其中:

图1为根据本公开的各种实施方式的包括电子装置的网络环境的示图;

图2为根据本公开的各种实施方式的电子装置的框图;

图3为示出根据本公开的各种实施方式的在电子装置之间的通信协议的示图;

图4为示出根据本公开的各种实施方式的电子装置存储器管理系统的框图;

图5为执行根据本公开的各种实施方式的电子装置存储器管理方法的流程图;

图6为根据本公开的各种实施方式的电子装置存储器管理方法的示图;

图7为根据本公开的各种实施方式的电子装置存储器管理方法的示图;

图8为根据本公开的各种实施方式的电子装置存储器管理方法的示图;

图9为示出根据本公开的各种实施方式的在异构存储器与处理器之间的连接结构的示图;

图10为示出根据本公开的各种实施方式的存储器堆叠结构的示图;

图11为执行根据本公开的各种实施方式的区域设置方法的流程图;

图12为示出根据本公开的各种实施方式的存储器信息的示图;

图13为示出根据本公开的各种实施方式的区域结构的示图;

图14为示出根据本公开的各种实施方式的区域信息的示图;

图15为执行根据本公开的各种实施方式的区域设置方法的流程图;

图16为示出根据本公开的各种实施方式的区域配置策略表的示图;

图17为示出根据本公开的各种实施方式的应用处理器的配置的框图;以及

图18为执行根据本公开的各种实施方式的电子装置存储器管理方法的流程图。

应当注意,在所有附图中,相同的附图标记用于描述相同或相似的元件、特征和结构。

具体实施方式

提供参考附图的下列描述以帮助全面理解由权利要求及其等同物所限定的本公开的各种实施方式。其包括各种具体细节以帮助理解,但应将这些具体细节视为仅仅是示例性的。因此,本领域的普通技术人员将认识到,在不脱离本公开的范围和精神的情况下,可以对本文所述的各种实施方式进行各种改变和修改。另外,为了清楚和简明,可省略对公知功能和构造的描述。

在下列描述和权利要求中使用的术语和词语不限于书面意义,而是仅由本发明人用于使得本公开能够被清楚和一致地理解。相应地,对于本领域技术人员来说显而易见的是,提供对本公开的各种实施方式的下列描述仅用于说明,而不用于限制如通过所附权利要求及其等同物限定的本公开。

应当理解,除非上下文另有明确规定外,单数形式“一个”、“一种”和“所述”包括复数对象。因此,例如,对“组件表面”的引述包括对一个或多个这种表面的引述。

根据本公开的电子设备可以是具有通信功能的设备。例如,根据本公开的电子装置可以是智能电话、平板个人计算机(PC)、移动电话、视频电话、电子书(e-book)阅读器、台式PC、膝上型PC、上网本计算机、个人数字助理(PDA)、便携式多媒体播放器(PMP)、MP3播放器、移动医疗器械、电子手环、电子项链、电子附件、相机、可穿戴装置、电子时钟、手表、家用电器(例如冰箱、空调、清洁器、烤箱、微波炉、洗衣机、空气净化器等)、人工智能机器人、电视、数字通用光盘(DVD)播放器、音频播放器、各种医疗器械(例如磁共振血管造影(MRA)装置、磁共振成像(MRI)装置、计算机断层摄影(CT)装置、超声成像装置等)、导航装置、全球定位系统(GPS)接收器、事件数据记录器(EDR)、飞行数据记录器(FDR)、机顶盒、电视(TV)盒(例如三星电子有限公司的HomeSyncTM、Apple TVTM和Google TvTM)、电子词典、用于车辆的信息娱乐装置、用于船舶的电子设备(例如导航装置、陀螺罗盘等)、航空电子装置、安全装置、电子服装、电子钥匙、摄录机、游戏机、头戴式显示(HMD)单元、平板显示装置、电子相框、电子相册、具有通信功能的家具和/或建筑物/结构的一部分、电子板、电子签名接收装置和保护器中的至少一种和/或其组合。对于本领域技术人员来说显而易见的是根据本公开的电子装置并不限于上述装置。

图1为根据本公开的实施方式的包括电子装置的网络环境的示图。

参考图1,电子装置100可包括总线110、处理器120、存储器130、输入/输出(I/O)模块140、显示模块150和通信模块160。

总线110可以是用于互连上述元件并允许在上述元件之间进行通信(例如传送控制消息)的电路。

处理器120可通过例如总线110从上述其他元件(例如存储器130、I/O模块140、显示模块150和通信模块160)接收命令,可解码所接收的命令并根据解码的命令执行操作和/或数据处理。

存储器130可存储从处理器120和/或其它元件(例如I/O模块140、显示模块150和通信模块160)接收的命令和/或由处理器120和/或其他元件产生的命令和/或数据。存储器130可包括编程模块,诸如内核131、中间件132、应用编程接口(API)133和应用134。上述编程模块中的每一个可由软件、固件、硬件和/或其两个或更多个的组合来进行配置。

内核131控制或管理用于执行由任何编程模块(例如中间件132、API 133或应用134)实现的操作或功能的系统资源(例如,总线110、处理器120或存储器130)。此外,内核131提供用于从中间件132、API 133或应用134访问电子装置101的各个组件以控制或管理组件的接口。

中间件132执行允许API 133或应用134与内核131进行通信以交换数据的中继功能。此外,在从应用134接收的操作请求中,中间件132通过使用向应用134分配优先级的方法来执行操作请求(例如,调度或负载平衡),通过优先级来利用系统资源(例如,总线110、处理器120、存储器130等)。

API 133是这样一种接口,通过所述接口,应用134能控制由内核131或中间件132提供的功能且包括,例如,用于文件控制、窗口控制、图像处理或字符控制的至少一个接口或功能(例如,命令)。

根据本公开的各种实施方式,应用134可包括短消息服务(SMS)/多媒体消息服务(MMS)应用、电子邮件应用、日历应用、警报应用、保健应用(例如,测量运动量或血糖的应用)或环境信息应用(例如,提供关于大气压、湿度或温度的信息的应用)。附加地或可替代地,应用134可以是与在电子装置100与外部电子装置(例如,电子装置104)之间的信息交换相关的应用。与信息交换相关的应用可包括,例如,用于将特定信息传送到外部电子装置的通知中继应用或用于管理外部电子装置的装置管理应用。

例如,通知中继应用可包括将由电子装置100的另一应用(例如,SMS/MMS应用、电子邮件应用、保健应用或环境信息应用)产生的通知信息发送到外部电子装置(例如,电子装置104)。附加地或可替代地,通知中继应用可从例如外部电子装置104接收通知信息并将接收的通知信息提供给用户。装置管理应用可管理(例如,安装、移除或更新)与电子装置100进行通信的外部电子装置104的功能(例如,打开/关闭外部电子装置、打开/关闭外部电子装置的一些组件或控制显示器的亮度)、在外部电子装置104中执行的应用或由外部电子装置104提供的服务(例如,呼叫服务或消息服务)中的至少一部分。

根据本公开的各种实施方式,可根据外部电子装置104的属性(例如,电子装置的类型)来指定应用134。例如,当外部电子装置104为MP3播放器时,应用134可包括与音乐播放相关的应用。类似地,当外部电子装置104为移动医疗装置时,应用134可包括与保健相关的应用。根据本公开的实施方式,应用134可包括指定给电子装置101的应用和从外部电子装置(例如,服务器106或电子装置104)接收的应用中的至少一个。

I/O模块140通过例如总线110将通过输入/输出(I/O)装置(例如,传感器、键盘或触摸屏)从用户输入的命令或数据发送到处理器120、存储器130或通信模块160。例如,I/O模块140可通过触摸屏将关于用户的触摸输入的数据提供到处理器120。此外,I/O模块140可通过I/O模块(例如,扬声器或显示器)输出通过例如总线110从处理器120、存储器130或通信模块160接收的命令或数据。例如,I/O模块140可通过扬声器(未示出)输出通过处理器120处理的语音数据。

显示器150显示用于用户的各项信息(例如,多媒体数据、文本数据等)。

通信模块160使得能够在电子装置100与外部电子装置(例如,电子装置104或服务器106)之间进行通信。例如,通信模块160可通过无线通信或有线通信访问网络162以与电子装置进行通信。无线通信包括例如Wi-Fi、BluetoothTM(BT)、近场通信(NFC)、GPS和蜂窝通信(例如,长期演进(LTE)、高级LTE(LTE-A)、码分多址(CDMA)、宽带CDMA(WCDMA)、通用移动远程通信系统(UMTS)、无线宽带(WiBro)或全球移动通信系统(GSM))中的至少一种。有线通信可包括例如通用串行总线(USB)、高清晰度多媒体接口(HDMI)、推荐标准232(RS-232)和普通老式电话服务(POTS)中的至少一种。

根据本公开的实施方式,网络162可以是远程通信网络。远程通信网络包括计算机网络、互联网、物联网和电话网络中的至少一个。根据本公开的实施方式,可由应用134、API 133、中间件132、内核131和通信模块160中的至少一个来支持用于在电子装置100与外部装置之间进行通信的协议(例如,传输层协议、数据链路层协议或物理层协议)。

图2为根据本公开的各种实施方式的电子装置的框图。

参考图2,电子装置200可配置例如在图1中所示的电子装置100的整体或一部分。电子装置200包括一个或多个应用处理器(AP)210、通信模块220、用户识别模块(SIM)卡224、存储器230、传感器模块240、输入装置250、显示器260、接口270、音频模块280、相机模块291、电源管理模块295、电池296、指示器297和电机298。

AP 210操作操作系统(OS)或应用程序以控制连接到AP 210的硬件组成元件或软件组成元件并执行包括多媒体数据的各种数据处理和计算。AP 210可由例如,片上系统(SoC)来实现。根据本公开的实施方式,处理器210还可包括图形处理单元(GPU)。

通信模块220(例如,通信接口160)通过网络在连接到电子装置200的不同电子装置(例如,电子装置104和服务器106)之间通信以发送/接收数据。根据本公开的实施方式,通信模块220包括蜂窝模块221、Wi-Fi模块223、BT模块225、GPS模块227、NFC模块228和射频(RF)模块229。

蜂窝模块221通过通信网络(例如,LTE、LTE-A、CDMA、WCDMA、UMTS、WiBro、GSM等)提供语音、呼叫、视频呼叫、SMS或互联网服务。此外,蜂窝模块221可通过使用SIM(例如,SIM卡224)来区分和认证通信网络内的电子装置。根据本公开的实施方式,蜂窝模块221执行可由AP 210提供的功能中的至少一些。例如,蜂窝模块221可执行多媒体控制功能中的至少一些。

根据本公开的实施方式,蜂窝模块221可包括通信处理器(CP)。此外,蜂窝模块221可由例如SoC来实现。

尽管在图8中诸如蜂窝模块221(例如,通信处理器)、存储器230和电源管理模块295的组件被示为与AP 210相分离的组件,但在本公开的实施方式中,AP 210可包括前述组件中的至少一些(例如,蜂窝模块221)。

根据本公开的实施方式,AP 210或蜂窝模块221(例如,CP)可将从连接到AP 210和蜂窝模块221中的每一个的非易失性存储器和其他组件中的至少一个接收的命令或数据加载到易失性存储器并处理所加载的命令或数据。此外,AP 210或蜂窝模块221可将从其他组件中的至少一个接收的的数据或由其他组件中的至少一个产生的数据存储在非易失性存储器中。

Wi-Fi模块223、BT模块225、GPS模块227和NFC模块228中的每一个可包括例如用于处理通过相应模块发送/接收的数据的处理器。虽然在图2中蜂窝模块221、Wi-Fi模块223、BT模块225、GPS模块227和NFC模块228被示为彼此相分离的框,但根据本公开的实施方式,蜂窝模块221、Wi-Fi模块223、BT模块225、GPS模块227和NFC模块228中的至少一些(例如,两个或更多)可包括在一个集成芯片(IC)或一个IC封装中。例如,蜂窝模块221、Wi-Fi模块223、BT模块225、GPS模块227和NFC模块228中的至少一些(例如,与蜂窝模块221对应的通信处理器和与Wi-Fi模块223对应的Wi-Fi处理器)可由一个SoC来实现。

RF模块229发送/接收数据,例如,RF信号。尽管未示出,但RF模块229可包括例如收发器、功率放大模块(PAM)、滤波器、低噪声放大器(LNA)等。此外,RF模块229还可包括用于以无线通信的方式在自由空间中发送/接收电波的组件,例如,导体、导线等。虽然在图2中蜂窝模块221、Wi-Fi模块223、BT模块225、GPS模块227和NFC模块228共享一个RF模块229,但根据本公开的实施方式,蜂窝模块221、Wi-Fi模块223、BT模块225、GPS模块227和NFC模块228中的至少一个可通过单独的RF模块发送/接收RF信号。

SIM卡224为包括SIM的卡且可插入到在电子装置的一部分中形成的狭槽中。SIM卡224包括唯一的识别信息(例如,集成电路卡识别符(ICCID)或用户信息(例如,国际移动用户识别码(IMSI))。

存储器230(例如,存储器130)可包括内部存储器232和外部存储器234。内部存储器232可包括例如易失性存储器(例如,随机存取存储器RAM、动态RAM(DRAM)、静态RAM(SRAM)、同步DRAM(SDRAM)等)和非易失性存储器(例如,只读存储器(ROM)、一次性可编程ROM(OTPROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、掩模ROM、闪速ROM、NAND闪速存储器、NOR闪速存储器等)中的至少一个。

根据本公开的实施方式,内部存储器232可以是固态驱动器(SSD)。外部存储器234还可包括闪存驱动器,例如紧凑式闪存(CF)、安全数字(SD)、微型SD、迷你SD、极限数字(xD)或记忆棒。外部存储器234可通过各种接口功能性地连接到电子装置200。根据本公开的实施方式,电子装置200还可包括存储装置(或存储介质),诸如硬盘驱动器。

传感器模块240测量物理量或检测电子装置200的操作状态并将测量或检测的信息转换成电信号。传感器模块240可包括,例如姿势传感器240A、陀螺仪传感器240B、大气压(气压)传感器240C、磁传感器240D、加速度传感器240E、握持传感器240F、接近度传感器240G、颜色传感器240H(例如,红绿蓝(RGB)传感器)240H、生物计量传感器240I、温度/湿度传感器240J、照明(光)传感器240K和紫外(UV)传感器240M中的至少一个。附加地或可替代地,传感器模块240可包括,例如电子鼻传感器、肌电图(EMG)传感器、脑电图(EEG)传感器、心电图(ECG)传感器、红外(IR)传感器、虹膜传感器、指纹传感器(未示出)等。传感器模块240还可包括用于控制包括在传感器模块240中的一个或多个传感器的控制电路。

输入装置250包括触摸面板252、(数字)笔传感器254、按键256和超声波输入装置258。例如,触摸面板252可识别以电容型、电阻型、红外型和声波型中的至少一种类型的形式的触摸输入。触摸面板252还可包括控制电路。在电容型中,触摸面板252可识别接近度以及直接触摸。触摸面板252还可包括触觉层以提供对用户的触觉反应。

例如,(数字)笔传感器254可使用与接收用户的触摸输入的方法相同或相似的方法,或者使用单独的识别板来实现。按键256可包括,例如,物理按钮、光学按键或按键板。超声波输入装置258可由电子装置200的麦克风(例如,麦克风288)通过产生超声波信号来检测声波以识别数据并可执行无线识别。根据本公开的实施方式,电子装置200使用通信模块220从连接到电子装置200的外部装置(例如,计算机或服务器)接收用户输入。

显示器260(例如,显示器150)包括面板262、全息图装置264和投影仪266。面板262可以是例如液晶显示器(LCD)或有源矩阵有机发光二极管(AM-OLED)。面板262可被实现为例如柔性的、透明的或可穿戴的。可由触摸面板252和一个模块来配置面板262。全息图装置264通过使用光的干涉在空中示出立体图像。投影仪266将光投射在屏幕上以显示图像。例如,屏幕可位于电子装置200的内部或外部。根据本公开的实施方式,显示器260还可包括用于控制面板262、全息图装置264和投影仪266的控制电路。

接口270包括例如HDMI 272、USB 274、光学接口276和D-超小型(D-sub)接口278。接口270可包括在例如图1中所示的通信接口160中。附加地或可替代地,接口270可包括例如移动高清晰度链路(MHL)接口、SD卡/多媒体卡(MMC)或红外数据协议(IrDA)标准接口。

音频模块280双向地转换声音和电子信号。音频模块280中的至少一些组件可包括在例如图1中所示的I/O模块140中。音频模块280处理通过例如扬声器282、接收器284、耳机286、麦克风288等输入或输出的声音信息。

相机模块291可拍摄静止图像和视频。根据本公开的实施方式,相机模块291可包括一个或多个图像传感器(例如,前传感器或后传感器)、图像信号处理器(ISP)(未示出)或闪光灯(例如,LED或氙灯)。

电源管理模块295管理电子装置200的电力。尽管未示出,电源管理模块295可包括例如电源管理集成电路(PMIC)、充电器IC或者电池计或燃油表。

可将PMIC安装到例如集成电路或SoC半导体。可将充电方法分为有线方法和无线方法。充电器IC对电池进行充电并防止从充电器流出过电压或过电流。根据本公开的实施方式,充电器IC包括用于有线充电方法和无线充电方法中的至少一个的充电器IC。无线充电方法可包括例如磁共振方法、磁感应方法和电磁波方法,以及例如可添加用于无线充电的附加电路,诸如线圈回路、谐振电路、整流器等电路。

电池计或燃油表测量例如电池296的剩余电量或在充电期间的电压、电流或温度。电池296可存储或产生电并通过使用存储或产生的电将电力供给到电子装置200。电池296可包括可充电电池或太阳能电池。

指示器297示出电子装置200或电子装置200的一部分(例如,AP 210)的特定状态,例如,启动状态、消息状态、充电状态等。电机298将电信号转换成机械振动。

尽管未示出,但是电子装置200可包括用于支持模块TV的处理单元(例如,GPU)。用于支持移动TV的处理单元可处理例如根据数字多媒体广播(DMB)、数字视频广播(DVB)、媒体流等标准的媒体数据。

根据本公开的各种实施方式的电子装置的组件中的每一个可由一个或多个组件来实现且相应组件的名称可根据电子装置的类型而变化。根据本公开的各种实施方式的电子装置可包括上述组件中的至少一个,可省略组件中的一些或还可包括额外的组件。此外,根据本公开的各种实施方式的电子装置中的一些组件可进行组合以形成单个实体,因此可等效地执行在组合前的相应组件的功能。

图3为示出根据本公开的各种实施方式的在电子装置之间的通信协议的示图。

参考图3,例如,通信协议300可包括装置发现协议301、能力交换协议303、网络协议305和应用协议307。

根据本公开的实施方式,装置发现协议301使电子装置(例如,电子装置100和电子装置104)能够检测能与电子装置进行通信的外部装置或与检测的外部电子装置进行连接。例如,电子装置100可通过使用装置发现协议301检测作为能够通过在电子装置100中可用的通信方法(例如,Wi-Fi、BT、USB等)与电子装置100进行通信的电子装置的电子装置104。为了与电子装置104连接以进行通信,电子装置100可使用装置发现协议301获得并存储与检测的电子装置104有关的识别信息。电子装置100可发起与电子装置104的通信连接,例如,至少基于识别信息来实现。

根据本公开的实施方式,装置发现协议301可以是用于在多个电子装置之间进行认证的协议。例如,电子装置100可至少基于通信信息{例如,媒体访问控制(MAC)、通用唯一识别符(UUID)、子系统识别(SSID)、互联网协议(IP)地址}进行在电子装置100与电子装置104之间的认证以与电子装置104相连接。

根据本公开的实施方式,能力交换协议303使得可交换与可由电子装置100或电子装置104中的至少一个支持的服务功能相关的信息。例如,电子装置100和电子装置104可通过能力交换协议303与彼此交换关于当前由每个电子装置支持的服务功能的信息。可交换信息可包括识别信息,其指示在由电子装置100和电子装置104支持的服务中的特定服务。例如,电子装置100可通过能力交换协议303从电子装置104接收用于由电子装置104提供的特定服务的识别信息。在这种情况下,第一电子装置100可基于接收的识别信息确定电子装置100是否能支持特定服务。

根据本公开的实施方式,网络协议305使得可控制在电子装置(例如,电子装置100和电子装置104)之间发送和接收的数据流以提供互通服务。例如,电子装置100或电子装置104中的至少一个可使用网络协议305执行误差控制或数据质量控制。可替代地或附加地,网络协议305可确定在电子装置100和电子装置104之间发送和接收的数据的传输格式。另外,电子装置100或电子装置104中的至少一个可使用网络协议305管理用于在电子装置之间的数据交换的会话(例如,会话连接或会话终止)。

根据本公开的实施方式,应用协议307可提供用于交换与提供到外部装置的服务相关的数据的程序或信息。例如,电子装置100可通过应用协议307将服务提供到电子装置104。

根据本公开的实施方式,通信协议300可包括标准通信协议、由个人或团体指定的通信协议(例如,由通信装置制造商或网络提供商指定的通信协议)或其组合。

根据本公开的实施方式,通信协议300可包括标准通信协议、由个人或组织指定的通信协议(例如,由通信装置制造公司或网络供应公司自己指定的通信协议)或其组合。

图4为示出根据本公开的各种实施方式的电子装置存储器管理系统的框图。

参考图4,电子装置200可包括总线110、处理器210和存储器230。处理器210可以是图1的处理器120和图2的AP 210。存储230可以是图1的存储器130和图2的存储器230。

处理器210可经总线110连接到存储器230并与其进行通信。

根据本公开的另一个实施方式,处理器210可不经总线110而直接连接到存储器230并与其进行通信。

处理器210可包括至少一个算术和逻辑单元(ALU)211、存储器管理单元(MMU)212和缓存213。

处理器210根据操作系统和各种应用的执行来处理任务。处理器210根据操作系统和应用的执行来控制存储器230。

处理器210控制缓存213,其确定频繁使用的命令或数据以快速访问频繁使用的数据。

当将存储器的虚拟地址传送到缓存213时,处理器210可从缓存213接收与相应的虚拟地址相匹配的指令和数据。

另外,处理器210可经MMU 212接收关于与虚拟地址相匹配的存储器空间的读写属性信息。

ALU 211为用于计算算术和逻辑运算的电路,以及可根据提供到处理器210的命令对输入数据进行相加、相减或比较,或者求出输入数据的逻辑和或者逻辑积且可输出运算结果。ALU 211可输出运算结果(例如,数据)。可将从ALU 211输出的数据传送到缓存213。

MMU 212管理处理器210对存储器的访问,将虚拟存储器地址转换成物理存储器地址且可发挥存储器保护、缓存管理、总线调停等作用。MMU 212还可包括转换后备缓冲器(TLB,未示出)或可具有至其的访问。

MMU 212将根据任务的执行而涉及的存储器230空间的虚拟存储器地址转换成物理存储器地址。当从缓存213接收到虚拟地址时,MMU 212可将接收的虚拟地址转换成物理地址(该物理地址与相应的虚拟存储器地址相匹配);以及在相应的物理地址读取或写入数据。

电子装置200可包括作为能够直接与处理器210交换数据的存储器230的异构存储器。异构存储器包括至少一个具有异构存储器接口的存储装置。存储器230可包括第一存储器235和第二存储器236,第一存储器235和第二存储器236为具有至少一个不同特性(例如,封装类型、I/O的数量、每个引脚的I/O数据速率和总带宽)的不同存储器类型。例如,第一存储器235可以是宽I/O(WIDE I/O)DRAM,而第二存储器236可以是低功率双倍数据速率DRAM(LPDDR DRAM)。在“JEDEC标准的宽I/O单数据速率(宽I/O SDR)(JEDEC STANDARD WIDE I/O SINGLE DATA RATE(WIDE I/O SDR)),JESD229,2011年12月”等中公开了关于宽I/O DRAM的详细内容,其所有公开内容均并入本文以供参考。在“JEDEC标准的低功率双倍数据速率3SDRAM(LPDDR3)(JEDEC STANDARD LOW PPWER DOUBLE DATE RATE 3SDRAM(LPDDR3)),JESD209-3,2012年5月”等中公开了关于LPDDR DRAM的详细内容,其所有公开内容均并入本文以供参考。

即,当第一存储设备具有第一带宽和第一时钟频率时,第二存储器可具有第二带宽和第二时钟频率。另外,第一存储器和第二存储器可具有关于生热、功率效率等的不同特性。

在本公开的不同的实施方式中,第二存储器236可以是非易失性存储器(例如,辅助存储器),例如,具有闪存接口的存储装置。

例如,根据带宽进行判断,与第二存储器相比,可将第一存储器描述成高性能存储器,且与第一存储器相比,可将第二存储器描述成低性能存储器。

另外,根据本公开的实施方式,可在总线110和异构存储器之间配置存储器控制器。根据装置的配置,可为每个异构存储器配置存储器控制器或可将存储器控制器配置成单个集成存储器控制器。当为每个异构存储器配置存储器控制器时,第一存储装置235和第二存储装置236可从不同存储器控制器接收命令/地址且可与不同存储器控制器交换数据。

处理器210可根据操作系统和应用的执行对将发送到存储器230的数据类型进行分类。如在本文中所使用的,数据可包括将从存储装置加载到存储器230的数据、由通信模块220接收的数据、由接口270接收的数据、由传感器模块240感测的数据、由输入装置250输入的数据、由相机模块291获取的数据、由音频模块280记录的数据、由应用产生的数据和由操作系统产生的数据中的至少一种。

根据本公开的各种实施方式,处理器210对将发送到存储器230的数据类型进行分类。处理器210可基于数据的使用、数据存储结构、数据共享属性、所需的数据访问量和所需的初始数据访问速率对数据类型进行分类。例如,处理器210可基于数据的使用将数据的类型分成应用代码、应用数据、页面缓存、驱动器数据和操作系统数据中的一种。处理器210可基于数据存储结构将数据的类型分成顺序应用代码、随机应用代码、顺序缓存和随机缓存中的一种。

另外,处理器210可基于数据共享属性将数据的类型分成私人应用代码、共享应用代码、私人应用数据和共享应用数据中的一种。处理器210可基于数据的使用和数据存储结构将数据的类型分成顺序应用代码、随机应用代码、应用数据、顺序缓存、页面缓存、随机缓存、驱动器数据和操作系统数据中的一种。处理器210可基于数据的使用和数据共享属性将数据的类型分成私人应用代码、共享应用代码、私人应用数据、共享应用数据、页面缓存、驱动器数据和操作系统数据中的一种。

处理器210可将数据的类型分成应用代码、应用数据、页面缓存、驱动器数据、操作系统数据、顺序应用代码、随机应用代码、顺序缓存、随机缓存、私人应用代码、共享应用代码、私人应用数据和共享应用数据中的一种或多种。

处理器210在将数据的虚拟存储器地址转换成物理存储器地址时可根据数据类型确定用于存储数据的异构存储器。另外,处理器210在将数据的虚拟存储器地址转换成物理存储器地址时可基于分配策略中的至少一部分根据数据类型确定用于存储数据的异构存储器。如在本文中所使用的,分配策略指当存在有关于特定段数据的存储器分配请求时用于根据标准或条件(诸如数据类型)选择将存储相应数据的异构存储器230的规则。

根据本公开的实施方式的由处理器210来确定用于存储数据的异构存储器的方法如下:当数据类型属于驱动器或操作系统时,在转换成物理存储器地址时,虚拟存储器地址可转换成第一存储器235的物理存储器地址;当数据类型属于页面缓存或应用(例如,应用代码或应用数据)时,在转换成物理存储器地址时,虚拟存储器地址可转换成第二存储器236的物理存储器地址。

根据本公开的实施方式的由处理器210来确定用于存储数据的异构存储器的方法如下:当数据类型为顺序型时,在转换成物理存储器地址时,虚拟存储器地址可转换成第一存储器235的物理存储器地址;当数据类型为随机型时,在转换成物理存储器地址时,虚拟存储器地址可转换成第二存储器236的物理存储器地址。

包括在电子装置200中的文件管理器管理存储在诸如硬盘驱动器的存储装置(或存储介质)中的数据的模式类型。

例如,文件管理器可预先知道应用代码和缓存数据是按顺序模式还是按随机模式存储在存储装置(或存储介质)中。

顺序类型的数据(或顺序模式的数据)指具有基于一个或多个关键字段值顺序存储在存储装置(或存储介质)中的记录的数据。顺序类型的数据(或顺序模式的数据)为顺序存储在存储装置(或存储介质)中的数据。顺序类型的数据(或顺序模式的数据)可按顺序模式,但不一定要连续地存储在存储装置(或存储介质)中。

随机类型的数据(或随机模式的数据)指不按任何顺序将数据存储在存储装置(或存储介质)中的模式。

当将顺序模式的数据加载到存储器230上,基于文件系统策略,文件将加载到存储器230上的串联连接的地址空间中的可能性增加。当将随机模式的数据加载到存储器230上,基于文件系统策略,文件将加载到散布和分配在异构存储器230上的地址空间中的可能性增加。由于这些原因,操作系统的文件系统经常以顺序模式对数据进行重新排列,这需要大量的处理时间。根据本公开的实施方式,将顺序模式的数据分配到高性能存储器,从而增加高性能存储器的增益。

在本公开的实施方式中,提供了基于数据类型是私人型还是共享型来确定用于存储数据的异构存储器的方法。当数据类型为私人型时,在转换成物理存储器地址时,虚拟存储器地址可转换成第二存储器236的物理存储器地址。当数据类型为共享型时,在转换成物理存储器地址时,虚拟存储器地址可转换成第一存储器235的物理存储器地址。电子装置200可通过存储器管理器确定数据类型是私人型还是共享型。例如,一些操作系统(例如,Linux、Solaris、Android)管理作为共享型数据的、在进程之间共享数据并管理作为私人型数据的、仅用于单个进程中的数据。根据本公开的实施方式,将程序和应用的共享数据分配到高性能存储器,从而以更高的效率使用具有有限能力的高性能存储器。

在本公开的实施方式中,处理器210可至少基于一个分配策略(例如,根据目的的分配策略)确定用于存储数据的异构存储器。在这方面上,分配策略可在电子装置200中进行预先存储或预先设置。电子装置200可更新预先存储或预先设置的分配策略,可在操作期间产生或设置新的分配策略且可从不同的装置接收或下载分配策略。可根据实验确定分配策略。例如,当通过将特定数据分配到第一存储器235而非第二存储器236将获得更好的吞吐量时,可将特定数据分配到第一存储器235。相反地,当通过将特定数据分配到第二存储器236而非第一存储器235将获得更好的吞吐量时,可将特定数据分配到第二存储器236。

处理器210可基于分配策略根据数据类型确定(即,选择)存储器230且可将数据存储在相应的物理存储器地址上。

根据本公开的实施方式,处理器210可交叠或合并多个分配策略并使用这多个分配策略以确定用于存储数据的异构存储器230。当使用多个分配策略时,处理器210可根据各个分配策略的优先级应用分配策略。在这方面上,可将多个分配策略彼此独立地存储在电子装置200中。

在本公开的实施方式中,可按下列方式执行由处理器210确定异构存储器230的方法:在具有更多更好性能或具有更多存储空间的高性能存储器与具有较低性能的低性能存储器之间区分包括在异构存储器230中的存储器,以及优先将数据布置在高性能存储器中。即使在将数据优先布置在高性能存储器中时,处理器210也可基于高性能存储器的自由空间在低性能存储器中分配数据。

可根据电子装置200的系统情况更新分配策略。例如,电子装置200可连接到不同的电子装置以及可更新分配策略。

图5为执行根据本公开的各种实施方式的电子装置存储器管理方法的流程图。

参考图5,当在异构存储器230中分配(存储)电子装置200的软件数据时,选择用于数据的存储器类型。在本公开的实施方式中,图5可在操作系统的存储器管理器中进行操作。

电子装置200可使硬件组件或软件组件执行包括多媒体数据的各种数据的处理和操作。

包括在电子装置200中的软件可在用户空间与内核空间之间进行区分。用户空间可包括关于各种应用的数据,以及内核空间可包括关于页面缓存的数据、关于驱动器的数据以及关于操作系统的数据。

内核空间可包括存储器管理器。存储器管理器可包括虚拟地址管理器、物理地址管理器和文件管理器中的至少一个。

当存在有软件所需的关于特定数据的存储器分配请求时,存储器管理器可将相应数据分配到物理存储器中的一部分。另外,存储器管理器在确定不再需要数据后可释放分配。

当存在有对进程的请求时,存储器管理器可将相应的进程分配到物理存储器中的一部分。另外,存储器管理器在确定不再需要进程后可释放分配。

包括在存储器管理器中的虚拟地址管理器可管理数据的虚拟地址,以及包括在存储器管理器中的物理地址管理器可将数据的虚拟地址转换成物理地址且根据物理地址将数据分配到物理存储器。

参考图5,在操作501中,电子装置200可识别将发送到存储器230的数据类型。例如,在操作501中,可识别加载到电子装置的存储器230上并进行操作的整个或部分软件系统的数据类型。

根据本公开的实施方式,在操作501中由存储器管理器识别数据类型的方法为分析数据的虚拟地址、数据的元数据(与数据一起传送的附加信息)或因子信息(factor information)等,其包括在具有请求的存储器分配的软件函数调用中。

根据本公开的实施方式,在操作501中,电子装置200可确认数据是需要还是不需要小的初始建立时间的数据。

根据本公开的实施方式,在操作501中,电子装置200可确认数据类型需要高吞吐量还是需要低吞吐量。

根据本公开的实施方式,在操作501中,电子装置200可确认数据是私人数据类型还是共享数据类型。

根据本公开的实施方式,在操作501中,电子装置200可确认数据是顺序类型还是随机类型。

根据本公开的实施方式,在操作503中,电子装置200可基于在操作501中确定的数据类型确定(选择)用于存储数据的异构存储器。

例如,可根据实验确定分配策略。例如,当通过将特定数据分配到第一存储器235而非第二存储器236将获得更好的吞吐量时,可将特定数据分配到第一存储器235。相反地,当通过将特定数据分配到第二存储器236而非第一存储器235将获得更好的吞吐量时,可将特定数据分配到第二存储器236。

例如,以下描述在操作501中将数据分析作为需要小的初始建立时间的数据的情况。

在操作503中,电子装置200可将需要小的初始建立时间的数据分配到第二存储器236的物理存储器地址,其在异构存储器中具有含相对较小的初始建立时间的存储器特性。

在操作503中,电子装置200可确定将私人数据存储在第一存储器235中且可确定将共享数据存储在第二存储器236中。

在操作503中,电子装置200可确定将顺序型数据存储在第一存储器235中且可确定将随机型数据存储在第二存储器236中。

根据本公开的实施方式,电子装置200可具有至少一个分配策略。多个分配策略可按彼此独立或彼此交叠的方式进行应用。例如,可根据优先级顺序交叠和复核多个分配策略。

例如,将假定系统已按交叠方式应用基于“顺序/随机I/O数据分类”的分配策略和基于“共享/静态数据分类”的分配策略。当数据同时具有“共享”和“随机”类型时,可确定不同的存储器230以用于各个分配策略。在这种情况下,将“共享”的数据类型存储在第一存储器中的策略可具有比将“随机”的数据类型存储在第二存储器中的策略更高的优先级(即,权重),以及可做出最终确定以将数据存储在第一存储器中。

在本公开的类似的实施方式中,如果数据类型为“顺序型”且“应该具有低初始建立时间”,则将“顺序型”数据存储在第一存储器中的策略可具有比将“具有低初始建立时间”的数据存储在第二存储器中的策略更高的优先级,且可做出最终确定以将数据存储在第一存储器中。

随了作为示例的上述情况外,可存在有关各种分配策略组合的各种实施方式。

根据本公开的实施方式,应用到电子装置200的分配策略及其优先级可在电子装置200的操作期间根据电子装置200的状态和命令进行改变。

根据本公开的实施方式,基于具有多个分配策略的方法,电子装置200可包括分配策略表,分配策略表包括一系列的分配策略。电子装置200可参考分配策略表并确定将把数据分配到异构存储器中的哪个存储器。电子装置200可选择性地应用在分配策略表中描述的分配策略中的至少一个。另外,分配策略表可包括关于各种分配策略组合的信息或关于根据分配策略的优先级(即,权重)的信息。例如,分配策略表可包括关于将如何根据策略组合的所有情况的数量对给定的数据类型进行分类的限定。

下面的表1示出分配策略表的一个示例。

表1

电子装置200可选择性地使用存储在表1中所示的分配策略表中的四个策略中的一部分或全部。例如,电子装置200可从表1选择策略2(存储结构)和策略3(共享属性)并按交叠方式使用它们。在这种情况下,关于同时具有“共享”和“随机”数据,基于策略2确定的存储器为第二存储器,而基于策略3确定的存储器为不同于第二存储器的第一存储器。在另一个实施方式中,策略3的优先级为1,且策略2的优先级为2;就这点而言,策略3具有高优先级,且电子装置200可最终确定以将数据存储在第一存储器中。

此外,尽管已在上述实施方式中基于双路分类描述了分配策略,但也可存在有三个或更多异构存储装置230,且分配策略和分配策略表也可基于三路分类、四路分类或更高级别的分类而组成。

在操作505中,电子装置200可将数据存储在已在操作503中确定的所选异构存储器230中。

图6为根据本公开的各种实施方式的电子装置存储器管理方法的示图。

电子装置200可执行操作系统或应用程序以控制硬件组件或软件组件且,以及可执行包括多媒体数据的各种数据的处理和操作。

包括在电子装置200中的软件空间可在用户空间610与内核空间620之间进行区分。用户空间610可包括一个或多个应用611。可将应用611分成与应用操作命令相关的应用代码(以下称为数据A)612和应用数据(以下称为数据B)613。

用户空间610和内核空间620可包括在电子装置200的软件空间中,以及异构存储器230可包括在电子装置200的硬件空间中。

内核空间620可包括页面缓存(以下称为数据C)631、驱动器(以下称为数据D)632和操作系统数据(以下称为数据E)633。

内核空间620可使用页面缓存以改善数据I/O性能。至少一些操作系统(例如,Linux)可将文件映射到存储器上并像访问存储器一样处理正常文件或装置文件;因此,可使用页面缓存。

内核空间620可包括存储器管理器621。存储器管理器621可包括虚拟地址管理器622、物理地址管理器623和文件管理器624中的至少一个。

当存在有关软件所需的特定数据的存储器分配请求时,包括在内核空间620中的存储器管理器621可分配物理存储器的部分空间以存储相应的数据。另外,存储器管理器621可在确定不再需要数据后释放分配。

当存在对进程的请求时,存储器管理器621可将物理存储器230的部分空间分配到相应的进程。另外,包括在内核空间中的存储器管理器621可在确定不再需要进程后释放分配。

包括在存储器管理器621中的虚拟地址管理器622可确定进程的虚拟地址,且包括在存储器管理器621中的物理地址管理器623可将进程的虚拟地址转换成物理地址并根据物理地址将物理存储器的部分空间分配到进程。

根据本公开的实施方式,电子装置200可根据用于每个操作系统的存储器操作方案(存储器管理器的存储器类型)将数据类型分成应用代码(数据A)612、应用数据(数据B)613、页面缓存(数据C)631、驱动器(数据D)632和操作系统数据(数据E)633,且当上述数据段通过存储器管理器621存储在物理存储器中时,电子装置200可基于相应的数据类型和分配策略选择用于存储数据的存储器。例如,当通过将数据D或数据E分配到第一存储器235而非第二存储器236将获得更好的吞吐量时,可将数据D或数据E分配到第一存储器235。相反地,当通过将数据A、数据B或数据C分配到第二存储器236而非第一存储器235将获得更好的吞吐量时,可将数据A、数据B或数据C分配到第二存储器236。

例如,当数据A、数据B或数据C需要小的初始建立时间时,可将数据A、数据B或数据C分配到第二存储器236,其特征在于小的初始建立时间(例如,LPDDR接口)。当数据D或数据E需要同时大量的处理时,可将数据D或数据E分配到第一存储器235,其特征在于高速操作(例如,宽I/O接口)。例如,当数据A、数据B或数据C为随机数据类型时,电子装置200可将数据A、数据B或数据C分配到第二存储器236,其具有便于进行随机数据处理的接口(例如,LPDDR接口)。当数据D或数据E为顺序数据类型时,电子装置200可将数据D或数据E分配到第一存储器235,其具有便于顺序数据处理的接口(例如,宽I/O接口)。

在这方面上,当在一起应用多个分配策略的系统中在分配策略的结果之间发生冲突时(例如,在数据的特征在于顺序型且具有小的初始建立时间的情况下),可根据分配策略的优先级确定用于存储数据的异构存储器。已参考图5给出了关于这一点的详细描述。

图7为根据本公开的各种实施方式的电子装置存储器管理方法的示图。

如上所述,通过将进程的共享数据分配到高性能存储器,可以以较高的效率使用具有有限能力的高性能存储器。

参考图7,电子装置200中的OS可包括用户空间610和内核空间620。用户空间610可包括一个或多个应用611。应用611可包括与应用操作命令(以下称为数据A.私人型)相关的私人应用代码812、共享应用代码(以下称为数据A.共享型)813、私人应用数据(以下称为数据B.私人型)814和共享应用数据(以下称为数据B.共享型)815。

例如,确定数据是私人型还是共享型如下所述。可将包括在用户空间610中的控制应用操作的应用代码确定为私人应用代码812,且可将能够控制不同应用的操作的应用代码确定为共享应用代码813。例如,可将包括在用户空间610中的应用中的一个应用中所包括的应用数据确定为私人应用数据814,且可将包括在至少一个或多个应用中的应用数据确定为共享应用数据815。

根据本公开的实施方式,当电子装置200将私人应用代码(数据A.私人型)812、共享应用代码(数据A.共享型)813、私人应用数据(数据B.私人型)814和共享应用数据(数据B.共享型)815分配到异构存储器230,电子装置200可确定私人应用代码(数据A.私人型)812、共享应用代码(数据A.共享型)813、私人应用数据(数据B.私人型)814和共享应用数据(数据B.共享型)815的数据类型,以及基于数据类型和分配策略选择用于存储数据的异构存储器。根据实施方式,电子装置200可将私人数据分配到第一存储器235并将共享数据分配到第二存储器236。例如,电子装置200可将私人应用代码(数据A.私人型)813或私人应用数据(数据B.私人型)814分配到具有宽I/O接口的第一存储器235。例如,电子装置200可将共享应用代码(数据A.私人型)812或共享应用数据(数据B.共享型)815分配到具有LPDDR接口的第二存储器236。

图8为根据本公开的各种实施方式的电子装置存储器管理方法的示图。

如上所述,操作系统的文件管理器可管理数据段已按顺序模式还是随机模式存储在存储装置中。例如,存储装置指不同于本公开的存储器230的正常块装置。

参考图8,根据文件管理器策略,可将应用代码(数据A)612分成顺序应用代码(以下称为数据A.顺序型)816和随机应用代码(以下称为数据A.随机型)817并相应地进行管理,还可将页面缓存(数据C)631分成顺序缓存(以下称为数据C.顺序型)818和随机缓存(以下称为数据C.随机型)819并相应地进行管理。

根据本公开的实施方式,当电子装置200将顺序应用代码(数据A.顺序型)816、随机应用代码(数据A.随机型)817、顺序缓存(数据C.顺序型)818或随机缓存(数据C.随机型)819分配到异构存储器230时,电子装置200可确定顺序应用代码(数据A.顺序型)816、随机应用代码(数据A.随机型)817、顺序缓存(数据C.顺序型)818或随机缓存(数据C.随机型)819的数据类型并基于分配策略选择用于存储数据的异构存储器。

根据本公开的实施方式,当将文件管理器管理的数据加载到异构存储器上时,电子装置200可将顺序数据分配到第一存储器235并将随机数据分配到第二存储器236。例如,电子装置200可将顺序应用代码(数据A.顺序型)816或顺序缓存(数据C.顺序型)818分配到具有宽I/O接口的第一存储器235。例如,电子装置200可将随机应用代码(数据A.随机型)817或随机缓存(数据C.随机型)819分配到具有LPDDR接口的第二存储器236。

图9为示出根据本公开的各种实施方式的在异构存储器与处理器之间的连接结构的示图。

参考图9,电子装置200可包括处理器120、第一存储器235和第二存储器236。第一存储器235可以是宽I/O DRAM,而第二存储器236可以是LPDDR DRAM。

图10为示出根据本公开的各种实施方式的存储器的堆叠结构的示图。

参考图10,可使用三维硅通孔(TSV)方案封装存储器控制器1020和存储器芯片组1030。

存储器芯片组1030可包括多个堆叠的存储器芯片1031a至1031d。多个堆叠的存储器芯片1031a至1031d可通过在存储器芯片1031b至1031d内形成的微凸块1003和TSV 1004彼此电连接。多个堆叠的存储器芯片1031a至1031d中的每一个可具有不同的接口。存储器控制器1020可堆叠在基板1001上并由倒装芯片凸块1002电连接到基板1001。存储器芯片组1030可按面对背(F2B)的方案堆叠在存储器控制器1020上。存储器芯片组1030和存储器控制器1020可由在存储器控制器1020内形成的微凸块1003和TSV 1004电连接。使用三维TSV方案封装存储器控制器1020和存储器芯片组1030,使得在减少存储装置所占用的区域的同时可增加I/O带宽。

图11为执行根据本公开的各种实施方式的区域设置方法的流程图。

参考图11,在操作1100中,电子装置200可检查存储器信息。存储器信息用于配置区域且可包括待配置的每个区域的名称、指示与每个区域相关联的存储器的信息、指示用区域映射的存储器空间的开始地址的信息以及指示区域大小的信息中的至少一种。与区域相关联的存储器可以是上述异构存储器230。

图12为示出根据本公开的各种实施方式的存储器信息的示图。

参考图12,例如,可将存储器信息存储在电子装置200中作为文件1200。存储器信息1200包括作为每个区域的名称的“Normal(正常)”、“Virtual(虚拟)”和“Highmem(高速存储器)”。不同的区域,诸如“bank1(组1)”和“bank2(组2)”指与相应的区域相关联的存储器,且“start(开始)”、“start2(开始2)”和“start1(开始1)”为指示用相应区域映射的存储器空间的开始地址的信息。此外,“len1(长度1)”、“len2(长度2)”和“len3(长度3)”为指示相应区域大小的信息。

每个区域的名称和参数名称仅仅是示例,且还可使用其他名称。电子装置200可在启动进程期间或在操作期间执行操作1100。

返回参考图11,在操作1110中,电子装置200根据在操作1100中检查的存储器信息配置区域信息。在本公开的各种实施方式中,电子装置200可根据存储器信息配置关于待分配到两种或更多种存储器的三个或更多区域的区域信息。例如,电子装置200可将两个区域分配到第一存储器235且将一个区域分配到第二存储器236。

图13为示出根据本公开的各种实施方式的区域结构的示图。

参考图13,堆叠1310为在操作1110中配置的区域配置的一个示例。区域配置1310包括区域1311、区域1315和区域1317。区域1311被分配到第一存储器235,具有600MB的大小且具有名称“正常”。区域1315被分配到第一存储器235,具有424MB的大小且具有名称“虚拟”。区域1317被分配到第二存储器236,具有1GB的大小且具有名称“高速存储器”。

在这种情况下,将区域1311和区域1315分配到相同的第一存储器235,且将区域1317分配到第二存储器236。这种将一个或多个区域映射到每个存储器的配置可防止将多个存储器分配到单个区域的低效率。当要将数据分配到特定存储器时,可选择映射到相应存储器的区域,因此,根据数据类型将数据有效地分配到合适的存储器,从而优化电子装置200的性能。在这方面上,数据类型可包括应用代码、应用数据、页面缓存、驱动器数据、操作系统数据、顺序应用代码、随机应用代码、顺序缓存、随机缓存、私人应用代码、共享应用代码、私人应用数据和共享应用数据中的至少一种。

堆叠1330表示内核的存储器配置,且存储器配置1330包括内核空间1331和用户空间1335。

堆叠1320表示在内核空间1331、“正常”区域1311和“虚拟”区域1315之间映射的配置且包括大小为424MB的空间1321和大小为600MB的空间1325。空间1321用“虚拟”区域1315映射,且空间1311用“正常”区域1311映射。因此,“正常”区域1311和“虚拟”区域1315用内核空间映射。另外,“正常”区域1311和“虚拟”区域1315映射到第一存储器235,以将内核空间1331中的数据中的至少一部分存储在第一存储器235中。当第一存储器235比第二存储器236更快时,与内核空间1331中的数据同时存在于第一存储器235和第二存储器236中时相比,改善了对在内核空间1331中的数据的处理速率和访问速率,从而改善电子装置200的性能。

尽管已参考图13描述了实施方式,其中,将空间1321和“虚拟”区域1315映射到单个空间,但本公开不限于此,还可将“虚拟”区域1315映射到内核空间1331和用户空间1335两者。在本公开的各种实施方式中,当“虚拟”区域1315具有超过424MB的大小时,在映射到空间1321后剩余的空间可映射到用户空间1335。由于对用户空间1335和“虚拟”区域1315进行了映射,可将用户空间1335中的数据存储在已与“虚拟”区域建立映射的第一存储器235中,因此,改善了对在用户空间1335中数据的处理速率和访问速率,从而改善电子装置200的性能。

在本公开的各种实施方式中,在根据如上面参考图5所示的操作503中确定的存储器确定是否将数据映射到虚拟区域1315后,可将用户空间1335中的数据映射至“虚拟”区域1315。

区域信息可包括分配信息和统计信息。分配信息可包括区域的名称、指示与区域相关联的存储器的信息、指示用区域映射的存储器空间的开始地址的信息以及指示区域大小的信息。统计信息可包括指示待分配的访问的数量的信息以及指示待释放的访问的数量的信息。

可为每个区域产生区域信息。即,可为“正常”区域1311、“虚拟”区域1315和“高速存储器”区域1317中的每一个产生区域信息。

图14为示出根据本公开的各种实施方式的区域信息的示图。

参考图14,结构1400为包括存储区域信息的字段的结构的示例。结构1400可包括:“分配信息”,其是用于存储分配信息的字段;以及“统计信息”,其为存储统计信息的字段。

电子装置200可为图13中所示的“正常”区域1311、“虚拟”区域1315和“高速存储器”区域1317中的每一个产生在结构1400中限定的参数,以及可将为“正常”区域1311、“虚拟”区域1315和“高速存储器”区域1317中的每一个配置的区域配置信息存储在参数中的每一个中。

图15为执行根据本公开的各种实施方式的区域设置方法的流程图。

参考图15,在操作1510中,电子装置200可识别添加的存储器。当添加存储器时,电子装置200可通过热插拔(热插入、热调换)识别添加的存储器。在操作1510中,电子装置200可从存储器中检索存储器信息。存储器信息可包括关于类型的信息、关于能力(大小)的信息以及关于数据处理速率的信息中的至少一种。

在操作1520中,电子装置200可访问指示区域配置策略的数据。区域配置策略设置用于在添加的存储器中配置区域的规则。区域配置策略可存储在区域配置策略表中,以及电子装置200可访问在区域配置策略表中的区域配置策略。

在操作1530中,电子装置200可基于指示区域配置策略的数据和关于存储器的信息确定待分配到添加的存储器的区域。在本公开的各种实施方式中,电子装置200可基于存储器信息从区域配置策略表中选择区域配置策略且可基于选定的区域配置策略确定待分配到存储器的区域。

在本公开的各种实施方式中,区域配置策略可指示将新区域分配到添加的存储器。

在本公开的各种实施方式中,区域配置策略可指示将先前配置的区域分配到添加的存储器。在这种情况下,可将区域分配到现有存储器和添加的存储器;可替代地,可将区域分配到添加的存储器,且同时可将不同区域重新分配到现有存储器。

电子装置200可根据操作1540的结果配置区域信息。电子装置200可配置关于区域的区域信息,该区域已被确定为待分配到添加的存储器的区域。电子装置200可产生参数,如结构1400且可将区域信息存储在该参数中。

图16为示出根据本公开的各种实施方式的区域配置策略表的示图。

参考图16,区域配置策略表1600包括区域配置策略1610。区域配置策略1610指示名为“V zone.5”的区域以分配到添加的存储器。

电子装置200访问在区域配置策略表1600中的区域配置策略1610,基于区域配置策略1610将区域“V zone.5”确定为待分配到添加的存储器的区域并配置关于区域“V zone.5”的区域信息。

图17为示出根据本公开的各种实施方式的应用处理器的配置的框图。

参考图17,应用处理器210可包括转换器1710、DRAM控制器1720、NAND控制器1730和核心子系统1740。DRAM控制器1720连接到内部存储器232和转换器1710,以及转换器1710连接到外部存储器1701。在这种情况下,外部存储器1701可以是高速外部卡,例如,R卡。在图2中所示的外部存储器230可包括外部存储器1701。

DRAM控制器1720可经转换器1710从外部存储器1701访问数据且可将数据存储在内部存储器232或外部存储器1701中。DRAM控制器1720可不通过转换器1710从内部存储器232直接访问数据且可将数据存储在内部存储器232中。当将外部存储器1701插入电子装置200中时,DRAM控制器1720识别插入的外部存储器1701。在一些实施方式中,在操作1510中添加的存储器可以是插入的外部存储器1701,以及当将外部存储器1701插入电子装置200中时,可能会发生在图15中所示的操作。

转换器1710可在DRAM接口与外部存储器接口之间转换。即,转换器1710使电子装置200将外部存储器1701识别为系统存储器。转换器1710可转换与内部存储器232或外部存储器1701的接口并选择性地向DRAM控制器1720提供内部存储器232和外部存储器1701中的数据,以及可选择性地将已从DRAM控制器1720接收的数据存储在内部存储器232和外部存储器1701中。

转换器1710是有益的,这是因为其使得电子装置200将外部存储器(例如,R卡)识别为系统存储器,从而防止现有基于NAND的交换存储器的性能和寿命的降低。转换器还移除了存在于相关技术的R卡技术中的交换负担,从而改善了电子装置200的系统性能并使电子装置200的所有数据类型都能够存储在外部中。此外,转换器将增加电子装置200的R卡使用率,这是因为转换器便于电子装置200的存储器的扩展;以及使电子装置200的内部存储器的容量最小化。在这方面上,电子装置200的数据类型可包括应用代码、应用数据、页面缓存、驱动器数据、操作系统数据、顺序应用代码、随机应用代码、顺序缓存、随机缓存、私人应用代码、共享应用代码、私人应用数据和共享应用数据中的至少一种。

图18为执行根据本公开的各种实施方式的电子装置存储器管理方法的流程图。

参考图18,在操作1800中,电子装置200可分析数据以识别待发送到存储器230的数据的类型。例如,在操作1800中可识别加载到电子装置的存储器230上并进行操作的数据的类型。

根据本公开的实施方式,在操作1800中由存储器管理器识别数据类型的方法为分析数据的虚拟地址、数据的元数据(与数据一起传送的附加信息)或因子信息等,其包括在具有请求的存储器分配的软件函数调用中。

根据本公开的实施方式,在操作1800中,电子装置200可确认数据是否需要小的初始建立时间。

根据本公开的实施方式,在操作1800中,电子装置200可确认数据类型需要高吞吐量还是低吞吐量。

根据本公开的实施方式,在操作1800中,电子装置200可确认数据是私人数据类型还是共享数据类型。

根据本公开的实施方式,在操作1800中,电子装置200可确认数据是顺序类型还是随机类型。

根据本公开的实施方式,在操作1800中,电子装置200可根据在操作1800中确认的数据类型分类确定(选择)用于存储数据的异构存储器。

例如,可根据实验确定分配策略。例如,当通过将特定数据分配到第一存储器235而非第二存储器236将获得更好的吞吐量时,可将特定数据分配到第一存储器235。相反地,当通过将特定数据分配到第二存储器236而非第一存储器235将获得更好的吞吐量时,可将特定数据分配到第二存储器236。

在操作1810中,电子装置200可基于在操作1800中的分析结果并基于预设策略的至少一部分确定用于存储数据中的一部分或全部的存储器的至少一个类型。

在操作1810中,电子装置200可确定将需要小的初始建立时间的数据分配到第二存储器236,其具备具有相对较小的初始建立时间的存储器特性。

在操作1810中,电子装置200可确定将私人数据存储在第一存储器235中,以及可确定将共享数据存储在第二存储器236中。

在操作1810中,电子装置200可确定将顺序型数据存储在第一存储器235中,以及可确定将随机型数据存储在第二存储器236中。

根据本公开的实施方式,电子装置200可具有至少一个分配策略。多个分配策略可按彼此独立或彼此交叠的方式进行应用。例如,可根据优先级顺序地交叠和复核多个分配策略。

例如,将假定系统已按交叠方式应用基于“顺序/随机I/O数据分类”的分配策略和基于“共享/静态数据分类”的分配策略。在数据同时具有“共享”和“随机”类型的情况下,可确定不同的存储器230来用于各个分配策略。在这种情况下,将“共享”的数据类型存储在第一存储器中的策略可具有比将“随机”的数据类型存储在第二存储器中的策略更高的优先级(权重),以及可做出最终确定以将数据存储在第一存储器中。

在本公开的实施方式中,在数据类型为“顺序型”且“应该具有低初始建立时间”的情况下,将“顺序型”数据存储在第一存储器中的策略则可具有比将“具有低初始建立时间”的数据存储在第二存储器中的策略更高的优先级,且可做出最终确定以将数据存储在第一存储器中。

随了作为示例的上述情况外,可存在有关于各种分配策略组合的各种实施方式。

根据本公开的实施方式,应用到电子装置200的分配策略及其优先级可以是根据电子装置200的状态的、对电子装置200的变化的执行驱动。

根据本公开的实施方式,基于多个分配策略的方法,电子装置200可包括分配策略表,分配策略表由一系列的分配策略组成。电子装置200可以参考分配策略表并确定将把数据分配到哪个存储器。电子装置200可选择性地将在分配策略表中描述的分配策略中的至少一个应用到系统。另外,分配策略表可包括关于各种分配策略组合的信息或关于根据分配策略的优先级(权重)的信息。例如,分配策略表可包括关于将如何根据分配组合的所有情况的数量对给定的数据类型进行分类的限定。

在操作1810中,电子装置200可选择性地使用存储在表1中给定的上述分配策略表中的四个策略中的一部分或全部。例如,电子装置200可从表1选择策略2(存储结构)和策略3(共享属性)并按交叠方式使用它们。在这种情况下,关于同时具有“共享”和“随机”类型的数据,基于策略2确定的存储器为第二存储器,而基于策略3确定的存储器为不同于第二存储器的第一存储器。

策略3的优先级为1,而策略2的优先级为2,且就这点而言,策略3具有高优先级,以及电子装置200可最终确定将数据存储在第一存储器中。

此外,尽管已在上述实施方式中基于双路分类描述了分配策略,但可存在三个或更多异构存储装置230,并且分配策略和分配策略表也可基于三路分类、四路分类或更高级别的分类而组成。

在操作1820中,电子装置200可根据在操作1810中确定的异构存储器230确定用于存储数据的区域。电子装置200可通过附加地使用在图11的操作1110中配置的区域信息或在图15的操作1540中配置的区域信息,根据在操作1810中确定的异构存储器230确定用于存储数据的区域。

例如,将假定已按图13中所示配置了区域。即,当在操作1810中确定的异构存储器230为第一存储器235时,在操作1820中,电子装置200确定将“正常”区域1311和“虚拟”区域1315中的一个作为用于存储数据的区域。将假定已按图13中所示配置了区域,使得当在操作1810中确定的异构存储器为第二存储器236时,电子装置200确定将“高速存储器”区域1317作为用于存储数据的区域。

在操作1830中,电子装置200可基于在操作1820中确定的区域将在操作1800中进行分析的数据的一部分或全部存储在存储器中。在这种情况下,可将数据的一部分或全部存储在与所确定的区域相关联的存储器的存储器空间中。例如,将假定已按图13中所示配置了区域。即,当已在操作1820中确定将“虚拟”区域1315作为用于存储数据的区域时,将数据中的一部分或全部存储在第一存储器235的、用“虚拟”区域1315映射的存储器空间中。

在本公开的各种实施方式中使用的“模块”可指例如包括硬件、软件和固件或者硬件、软件和固件中的两种或更多的组合的“单元”。“模块”可与诸如单元、逻辑、逻辑块、组件或电路的术语互换使用。“模块”可以是集成组件或其一部分的最小单元。“模块”可以是执行一个或多个功能或其一部分的最小单元。可机械地或电子地实现“模块”。例如,根据本公开的各种实施方式的“模块”可包括已知的或要在将来开发的、用于执行操作的专用IC(ASIC)芯片、场可编程门阵列(FPGA)和可编程逻辑装置中的至少一个。

根据本公开的各种实施方式,根据本公开的各种实施方式的装置(例如,其模块或功能)或方法(例如,操作)中的至少一部分可由例如,以编程模块的形式存储在计算机可读存储介质中的命令实现。当指令由一个或多个处理器(例如,处理器120)实现时,一个或多个处理器可执行与指令对应的功能。计算机可读存储介质可以是例如存储器130。编程模块中的至少一部分可例如由处理器210实现(例如,执行)。编程模块中的至少一部分可包括例如用于执行一个或多个功能的模块、程序、例程、指令集和/或进程。

计算机可读记录介质可包括:磁介质,诸如硬盘、软盘和磁带;光学介质,诸如光盘ROM(CD-ROM)和DVD;磁光介质,诸如光磁软盘;以及专门配置用于存储和执行程序命令的硬件装置,诸如ROM、RAM和闪存。另外,程序指令可包括:可使用解译器在计算机中执行的高级语言代码;以及由编译器生成的机器代码。上述硬件装置可被配置为作为一个或多个软件模块来进行操作,从而执行本公开的各种实施方式的操作,反之亦然。

根据本公开的模块或编程模块可包括所述组件元件中的至少一个,可省略组件元件中的一些,或可包括额外的组件元件。可顺序地、并行地、重复地或按启发式方式执行根据本公开的各种实施方式的由模块、编程模块或其他组件元件执行的操作。此外,可根据另一顺序执行一些操作或可省略一些操作,或者可添加其他操作。

根据本公开的各种实施方式,提供了用于存储命令的存储介质;命令被设置成当由至少一个处理器执行时,由至少一个处理器执行至少一个操作;以及根据用于管理包括异构存储器的电子装置的存储器的方法的至少一个操作可包括下列操作:分析数据;根据数据类型将数据分配到异构存储器;以及将分配的数据存储在异构存储器中。

虽然已参考本公开的各种实施方式示出和描述了本公开,但本领域技术人员将理解的是,在不脱离如由所附权利要求及其等同物限定的本公开的精神和范围的情况下,可对本公开做出形式和细节上的各种变化。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1