JAVACARD SIM 内存管理方法优化研究

2024-01-17 03:24黄健文蔡秋艳中国电信股份有限公司研究院广州510630
邮电设计技术 2023年12期
关键词:内存逻辑分配

黄健文,黄 健,蔡秋艳,杨 光(中国电信股份有限公司研究院,广州 510630)

1 概述

随着移动通信技术从1G 到5G 持续演进,移动通信已渗透到人们生产生活的方方面面[1-2]。3G 时代移动通信技术和互联网技术开始结合[3],4G 推动了移动互联网的高速发展[4],出现了微信、支付宝等超级应用APP。5G 通信技术带来了大带宽(eMBB)、大连接(mMTC)和低时延(uRLLC)等新应用场景,快速拉动大数据、人工智能、物联网和智能驾驶等一系列新业态[5]。6G 开始进入空天一体化时代,将形成沉浸式云XR、全息通信、感官互联、数字孪生等八大业务应用。

在1G~3G 时代,SIM 的核心用途是移动网络接入认证,是使用NATIVE 语言开发的单应用卡。在4G、5G 时代,由于行业应用的快速推广和终端技术的快速进步,SIM 芯片从ICC 架构发展为UICC 架构,采用JAVACARD 与GP 架构技术的多应用卡成为未来SIM的主流发展方向,SIM 具备入网鉴权与应用加载双重核心用途。在5G、6G 时代,电信运营商不仅向外提供移动通信数据管道服务,同时正力争成为全产业链综合服务商。电信运营商发挥SIM 的天然安全属性向外输出安全服务能力,并借用SIM 卡安全存储空间承载数字货币、数字身份、数字公交、市民卡等国家重要基础实施应用[6]。SIM RAM 内存资源是行业应用开发、加载流程中不可或缺的重要元素,将决定行业应用在SIM 内的运行效率及稳定性。为满足行业应用在SIM上最大程度的加载需求,本文后续将从SIM 芯片、COS内存资源现状,国际规范内存资源管理要求,分析优化提升SIM内存资源利用率的方法。

2 SIM卡内存资源现状

2.1 国际标准现状

现有JAVACARD JCRE 国际标准将SIM 内存分为CLEAR_ON_RESET 和CLEAR_ON_DESELECT 2 类。CLEAR_ON_RESET 简称RTR 内存,用于存储应用的永久性状态,CLEAR_ON_DESELECT 简称DTR 内存,用于存储应用的临时性、过渡性状态。RTR 内存在应用安装时候申请并占用,应用删除后释放回收为待分配的RTR,DTR 在应用安装时申请,应用选择运行时候内存占用,应用去选择后释放回收为DTR内存。

2.2 芯片现状

当前国内运营商发行的JAVACARD SIM 芯片主要以国产芯片为主,典型代表为华大电子CIU98M25、紫光国微THD89,芯片物理内存为40~44 KB。

2.3 现有SIM内存管理方法现状

现有SIM内存管理方法将待分配内存资源按一定比例预先固定划分为DTR 和RTR 内存,应用安装将在固定的DTR 和RTR 空间内进行申请分配,DTR 和RTR内存类型不可混合使用。现有SIM 内存管理方法,当应用实际DTR 大于预先固定设置DTR 时,应用被禁止安装,限制了应用DTR 内存资源的使用。目前国内具备多应用SIM 产品研发能力的主流卡商有东信和平、恒宝、华弘、握奇、天喻等,各个厂家研发的SIM商用产品可用于行业应用加载运行使用的待分配RAM 剩余空间为15~18 KB。

3 JAVACARD SIM 内存管理优化方法

3.1 SIM内存分配管理架构

本文遵循JAVACARD 国际标准对DTR 与RTR 内存类型的管理原则:DTR 内存在各个应用间可共享,应用去选择后进行内存释放;RTR 内存类型分配即占用,不可在应用间共享,应用删除后则释放内存。

SIM 卡芯片物理内存分为基础功能层内存和应用层内存。基础功能层内存是分配给基本通信能力、JAVACARD、GP 管理架构使用的固定物理内存,在SIM 卡开发过程中被固定分配,不可释放供后下载应用使用;应用层内存即SIM卡的剩余内存空间,只提供给应用下载使用。

应用层内存空间分为逻辑通道固定分配内存空间和当前待分配内存空间。固定分配内存空间标记为N×Dc,N表示SIM 支持的逻辑通道数量,Dc表示每个逻辑通道固定独立分配的DTR,每个逻辑通道间独立使用Dc字节DTR,不共享。当前待分配内存空间标记为M,可作为DTR 和RTR 使用,不预设置其内存类型,根据应用安装参数进行内存类型设置和内存数量分配。JAVACARD SIM 内存分配管理架构如图1所示。

图1 JAVACARD SIM 内存管理架构

3.2 JAVACARD SIM内存管理原则

为便于JAVACARD SIM 内存管理,根据GP 国际标准,定义如下应用内存管理参数:C7表示应用可使用最大RTR 内存空间;D7表示至少为应用固定预留的RTR内存空间;R表示应用安装实际使用的RTR空间;D表示应用安装实际使用的DTR空间。

JAVACARD SIM 应用层M+N×Dc内存空间,在应用安装、应用选择、应用删除等管理流程中,按如下原则进行内存申请释放管理。

a)当前待分配M字节内存空间管理原则,分配前不预设置DTR 和RTR 类型,根据内存分配请求进行DTR 和RTR 类型分配。RTR 分配即被占用不可共享、应用删除后该应用占用的RTR 释放,RTR 分配后1∶1实际占用物理内存;DTR 分配后可共享,应用去选择后该应用的DTR 被释放,多段DTR 内存可临时共享占用相同物理内存。

b)获取SIM 当前剩余空间原则,SIM 在应用安装前可使用GP 指令获取SIM 当前可使用的剩余内存空间,获取SIM 当前可使用的RTR 空间为M,获取当前SIM可使用DTR空间为Dc+M。

c)带C7/D7安装参数的应用安装内存申请管理原则,应用安装优先分配RTR 内存,当(D7≤M)&(D<MD7+Dc)条件成立时,允许进行应用安装,否则应用安装失败。安装X个相同应用时,当(M≥D7×X)&(M+Dc-D7×X≥D)&(D7≤M),第X个应用允许安装成功,X为正整数。

d)不带C7/D7安装参数的应用安装内存申请管理原则,应用安装优先分配RTR 内存,当(R<M)&(D<MR+Dc)条件成立时,允许进行应用安装,否则应用安装失败。安装X个相同应用时,当(M≥R×X)&(M+Dc-R×X≥D)&(R≤M),第X个应用允许安装成功,X为正整数。

e)应用调用API 获取应用可使用的内存空间管理原则。当应用不带C7/D7参数时,应用可使用的内存空间为当前SIM 待分配空间M,RTR 为M,DTR 为M+Dc-D。当应用带C7/D7参数时候,当C7-D7>M,应用可使用的RTR 为M,当C7-D7≤M时候,应用可使用的RTR为C7-D7;DTR为M+Dc-D。

f)带安装参数C7/D7的应用删除内存管理原则,删除前SIM 当前待分配内存空间为M,删除后SIM 当前待分配内存空间为D7+M,删除后可使用的RTR 为D7+M,删除后可使用的DTR为D7+M+Dc。

g)不带安装参数C7/D7的应用删除内存管理原则,删除前SIM 当前待分配内存空间为M,删除后SIM 当前待分配内存空间为R+M,删除后可使用的RTR 为R+M,删除后可使用的DTR为R+M+Dc。

h)应用选择DTR 内存溢出冲突管理原则,SIM 卡支持n个逻辑通道同时打开n个应用,每次在逻辑通道选择应用应按如下规则进行内存溢出冲突判断:

(a)当SUM(D1+D2…DX)>M+X×Dc,X≤n,DTR 内存溢出,SIM 应禁止当前在第X逻辑通道上选择DX应用,需等待其余逻辑通道上的DTR 内存释放后再进行选择。

(b)在支持X个逻辑通道的SIM 上,不会产生内存溢出冲突的DTR 最大平均值为M/X+Dc;当SIM 卡全部安装只要求DTR 的应用时,DTR≤M/X+Dc时,不会产生DTR 内存溢出;当应用带RTR 和DTR、且DTR≤Dc时,不会产生内存溢出冲突。

3.3 SIM内存分配管理实例

假设JAVACARD SIM 应用层内存空间为16 KB,SIM 支持4 个逻辑通道,每个逻辑通道固定分配1 KB DTR 共4×1 KB DTR,剩余12 KB 为当前待分配内存空间,可根据需要作为DTR或RTR内存类型分配使用。

a)分别安装配置C7/D7参数的应用APP-A、APPB 后SIM 内存状态如表1所示。APP-A 应用:C7=25,D7=2,R=1,D=2。APP-B 应用:C7=10,D7=2,R=1,D=2。API 方式获取应用可用空间:C7-D7>M_AF,RTR_API=M_AF;C7-D7≤M_AF,RTR_API=C7-D7。

表1 安装APP-A、APP-B应用后SIM剩余内存状态

b)分别安装不配置C7/D7参数的应用APP-C、APP-D、E、F 后SIM 内存状态如表2 所示。APP-C 应用:C7=0,D7=0,R=1,D=2。APP-D应用:C7=0,D7=0,R=0,D=2。

表2 安装APP-C、APP-D应用后SIM剩余内存状态

c)累计可安装APP-A 的数量与内存溢出冲突实例如表3 所示。应用APP-A:C7=25,D7=2,R=1,D=2;根据安装成功条件(M≥D7×X)&(M+Dc-D7×X≥D)&(D7≤M),即(12≥2X)&(12+1-2X≥2),可得X最大为5,可安装5 个APP-A 应用,第6 个应用安装失败。采用API方式获取应用可用空间:C7-D7>M_AF,RTR_API=M_AF;C7-D7≤M_AF,RTR_API=C7-D7。DTR 内存溢出计算:SUM(D1+D2+…+DX+DX)>M+X×Dc,安装完第5 个应用后当前待分配内存空间为2,2×X>2+1×X,当X>2时,产生DTR 内存溢出,SIM 卡只能在2 个逻辑通道上同时选择2个应用,在第3个逻辑通道上打开第3个应用时DTR内存溢出,应禁止打开。

表3 累计安装多个APP-A应用SIM内存状态变化

d)删除SIM 卡内多个APP-A 应用后,SIM 内存状态变化如表4 所示,应用APP-A:C7=25,D7=2,R=1,D=2;初始条件:SIM 已安装5 个APP-A;当前SIM 待分配内存空间为2。

表4 删除APP-A应用SIM内存状态

4 总结

本文在JAVACARD 国际标准RTR 和DTR 内存类型管理原则基础上,对SIM 应用层待分配内存空间进行优化管理,对待分配内存空间不预设置分配内存类型,待分配空间可作为RTR 和DTR 混合使用,应用删除后释放回收的内存空间可作为RTR 和DTR 混合使用。本文结合应用安装、应用选择、应用删除等流程,定义了SIM 应用层内存空间管理原则、RTR 和DTR 内存类型管理原则、应用安装内存申请管理规则、应用删除内存回收管理原则、应用选择内存溢出冲突管理原则和应用开发安装内存类型推荐原则。本文定义的内存管理方法具有如下优点:可指导SIM 卡外实体在应用开发阶段尽可能使用DTR 内存类型,少使用或者不使用RTR 内存类型,当全部安装只使用DTR 内存类型应用时,DTR≤M/N+Dc时,可安装无数个应用,且不产生内存溢出冲突;待分配内存空间不预设置内存类型,可广泛应用于各种应用类型的安装,避免传统方法由于DTR>Dc时应用无法安装的风险,本文可安装的应用DTR 最大值为M+Dc;指导SIM 应用管理平台合理使用D7参数,应尽可能不用D7安装参数,避免过度占用RTR 内存、造成内存资源浪费;应用删除释放的RTR 内存,可回收作为DTR 或RTR 使用,提升了内存回收管理的灵活性,有利于后续应用的安装使用。遵循本文定义的内存管理原则,可最大程度提升SIM物理内存利用率,装载更多行业应用。

猜你喜欢
内存逻辑分配
刑事印证证明准确达成的逻辑反思
逻辑
创新的逻辑
外部高速缓存与非易失内存结合的混合内存体系结构特性评测
应答器THR和TFFR分配及SIL等级探讨
“春夏秋冬”的内存
遗产的分配
一种分配十分不均的财富
绩效考核分配的实践与思考
女人买买买的神逻辑