用于存储器控制器的安全增强

文档序号:1220381 发布日期:2020-09-04 浏览:28次 >En<

阅读说明:本技术 用于存储器控制器的安全增强 (Security enhancements for memory controllers ) 是由 A·维涅斯 E·马图利克 M·莫尼尔 于 2019-01-14 设计创作,主要内容包括:本发明公开了一种存储器控制器,该存储器控制器包括被配置为生成预定数据模式的生成器电路、地址输入部和存储器接口电路。该存储器接口电路被配置为将预定数据模式在地址输入部中所识别的地址处写入存储器。该存储器接口电路被进一步配置为在该地址处从存储器读取存储的数据模式。该存储器控制器还包括完整性检查器电路,该完整性检查器电路被配置为比较预定数据模式和存储的数据模式,以及基于该比较来识别存储器的错误。(A memory controller includes a generator circuit configured to generate a predetermined data pattern, an address input section, and a memory interface circuit. The memory interface circuit is configured to write a predetermined data pattern to the memory at an address identified in the address input. The memory interface circuit is further configured to read the stored data pattern from the memory at the address. The memory controller also includes an integrity checker circuit configured to compare a predetermined data pattern to a stored data pattern, and identify an error of the memory based on the comparison.)

用于存储器控制器的安全增强

技术领域

本公开涉及将数据读取和写入到电子设备中的存储器,并且更具体地讲,涉及用于存储器控制器的安全增强。

背景技术

随着集成电路制造技术改善,半导体制造商能够将附加功能集成到单个硅基板上。然而,随着这些功能的数量增加,单个芯片上的部件的数量也会增加。附加部件可增加信号切换,继而生成更多热量。附加热量可能损坏芯片的各种部件。例如,当晶体管例如由于负偏置温度不稳定性(NBTI)而随时间推移被负偏置时,利用p沟道金属氧化物半导体(P-MOS)晶体管的存储器设备可能被附加热量影响。氧化物劣化也可能随时间推移而损坏晶体管。

随着存储器设备劣化,存储器设备的读取或写入稳定性可能受损(例如,由于其栅极阈值电压的偏移)。设计可以包括余量以减小由此类劣化带来的影响,但附加设计余量可能减小性能和/或增加提供存储器设备所必需的面积。

如果为所述存储器设备供电的调节器或电池更具电阻性,则可能出现电压下拉的效应。当由于存储器控制器及其相关联的存储器控制器的同时切换输出而出现电流峰值时,这可以在短时间段内减小电压。电流峰值可以导致施加到存储器的电压的值略低于存储器设备的正常操作状况的允许下限,这当然是在在有限时间段内的。电源的电阻性越大(老化效应),效应越大。

发明内容

本公开的实施方案包括存储器控制器。存储器控制器可以包括生成器电路,该生成器电路被配置为生成预定数据模式。存储器控制器可以包括地址输入部。存储器控制器可以包括存储器接口电路,该存储器接口电路被配置为将预定数据模式在地址输入部中所识别的地址处写入存储器,以及在该地址处从存储器读取存储的数据模式。存储器控制器可以包括完整性检查器电路,该完整性检查器电路被配置为比较预定数据模式和存储的数据模式,以及基于比较来识别存储器的错误。结合以上实施方案中的任一个,预定数据模式可以被配置为引起给定了预定数据模式的位大小的该存储器的数据总线的同时切换输出的最大数量。结合以上实施方案中的任一个,预定数据模式可以包括要单独写入存储器和从存储器读取的两个部分,并且同时切换输出的最大数量是来自两个部分的相应值的结果。结合以上实施方案中的任一个,预定数据模式被配置为在存储器的数据总线中的一个或多个数据位中引起串扰。结合以上实施方案中的任一个,预定数据模式包括要单独写入存储器和从存储器读取的两个部分,并且串扰是来自两个部分的相应值的结果。结合以上实施方案中的任一个,存储器接口电路和完整性检查器电路被配置为对由存储器刷新命令事件所确定的时段进行操作。结合以上实施方案中的任一个,预定数据模式包括对存储器设备中的一个或多个地址位置的完整性检查。结合以上实施方案中的任一个,预定数据模式被配置为创建用于检查访问完整性的已知状况。结合以上实施方案中的任一个,存储器接口电路被配置为在将预定数据模式写入地址之前,从地址读取并存储现有值。结合以上实施方案中的任一个,存储器接口电路被配置为在该地址处从存储器读取存储的数据模式之后,将现有值写入地址。结合以上实施方案中的任一个,存储器接口电路被配置为在将预定数据模式写入地址之前,接收针对地址的存储器命令,预定数据模式未由存储器命令限定。结合以上实施方案中的任一个,存储器接口电路被配置为在该地址处从存储器读取存储的数据模式之后,执行针对地址的存储器命令。

本公开的实施方案可以包括一种系统,该系统包括处理器、存储器、以及存储器控制器的以上实施方案中的任一个。

本公开的实施方案可以包括一种微控制器,该微控制器包括处理器、存储器、以及存储器控制器的以上实施方案中的任一个。

本公开的实施方案可以包括用于检测或预测存储器中的错误的方法。方法可以包括由存储器控制器、系统或微控制器的上述实施方案中的任一个执行的操作。

附图说明

图1示出了根据本公开的实施方案的其中可以实现安全机制的示例性系统,该系统包括处理器或微控制器和存储器设备。

图2示出了根据本公开的实施方案的其中可以实现安全机制的示例性系统的另一个视图。

图3示出了根据本公开的实施方案的存储器设备控制器的更详细架构。

图4示出了根据本公开的实施方案的存储器访问的序列。

图5示出了根据本公开的实施方案的存储器访问的另一个序列。

图6示出了根据本公开的实施方案的存储器访问的序列的定时改变。

具体实施方式

图1是根据本公开的实施方案的包括用于存储器控制器的安全增强的系统50的图示。尽管在图1中示出了系统50的示例性元件,但系统50可包括任何合适数量和种类的部件。在一个实施方案中,可以在例如微控制器或微处理器(MCU/MPU)52中实现用于存储器控制器的安全增强。安全增强可以对如何从存储器54读取数据或向其写入数据进行操作。安全增强可通过模拟电路、数字电路或由处理器执行的指令的任何合适的组合来实现。安全增强可以防止或减小由于系统50中的部件老化而引起的问题的影响。在系统50中的部件的使用寿命期间可能出现老化效应。尽管MCU/MPU 52被示为控制对存储器54的访问,并且因此控制安全机制的实现位置。但可以在其中执行存储器的控制的任何位置实现安全机制。MCU/MPU 52可以通过合适的总线连接到存储器54,以及连接到其他模拟和数字集成电路。

系统50可以包括电池56或其他电源。电池56可能经历老化效应。该效应可以包括电池56的串行输出电阻率随时间推移而增加。这可能在电流峰值期间引起电压下拉。

系统50可以包括一个或多个电压调节器,诸如低压差调节器(LDO)58。LDO 58可以包括潜在老化效应。LDO 58的串行输出电阻率可能随时间推移而增加。由于串行输出电阻率随时间推移而增加,因此这可能在电流峰值期间引起电压下拉。LDO 58的参考电压可能随时间推移而漂移。漂移可减小系统电压的余量,从而增加对去耦电容值的灵敏度等。类似地,另一个LDO 62可经历老化效应。在系统50中,LDO 58可以将来自电池56或另一个电源的电源电压转换为第二电压。例如,LDO 58可以将电池56处的5V或其他电压转换为3.3V。可以将3.3V信号提供给MCU/MPU 52或存储器54。此外,LDO 62可以将3.3V信号转换为1.0V。可以将1.0V信号提供给MCU/MPU 52。

系统50可以包括连接到系统50的各种元件的多个去耦电容器60。电容器60可以包括潜在老化效应。串行输出电阻率可能随时间推移而增加。由于串行输出电阻率随时间推移而增加,因此这可能在电流峰值期间增加电压下拉。另一个效应可以是标称电容值随时间推移而减少。因此,在峰值电流的情况下,电容器60可以提供较小的电荷。

存储器54可以包括潜在老化效应。一种效应可以是存储器阵列更改效应。由于老化,刷新时间可能不像产品寿命的初始部分那样可靠。此外,由于老化,可能发生终端电阻器漂移,其中特定数据值可能被更改。此外,可能出现电磁外部噪声效应,其中数据被更改。

微控制器52可以包括潜在老化效应。一种效应可以是双倍数据速率(DDR)控制器输入/输出(I/O)终端电阻器漂移,其中数据值可能被改变。可以另外通过定期自动校准来解决这一点。

老化效应可以一起或可以不一起影响系统50的所有部件。老化效应可以在某些状况发生(诸如系统50遇到电流峰值)时影响系统50的行为。可能难以确定在系统50上运行的给定应用程序是否将会创建其中老化效应将影响系统50的行为的环境。

安全机制可以包括对于给定执行的应用程序而言透明的电路,该安全机制创建已知最坏状况并且报告问题或对系统50采取校正动作。校正动作可以包括报告问题或将系统切换成减小的容量或能力模式,其中避免了可导致进一步错误或不稳定性的状况。最坏状况可以是针对DDR存储器访问。

本公开的实施方案可以在用于存储器控制器的电路中实现,诸如驱动静态存储器控制器的存储器控制器、SDR/DDR存储器控制器、或其他合适的存储器控制器。本公开的实施方案可以包括对于系统50的报告,诸如对于微控制器52的报告。报告可以尽早地识别有关外部存储器设备的潜在故障。对于微处理器或微控制器,系统存储器通常由需要刷新电路以维持存储值的外部动态存储器(SDR、DDR)组成。这些存储器单元可具有需要深亚微米技术的大容量,这些深亚微米技术可能经受可影响应用程序的安全的老化因素,以及由焊接在相同印刷电路板上的周围部件的老化因素引起的累积效应。如果没有错误校正电路(其添加显著成本开销和硅面积),则可能无法减小此类存储器设备的老化的效应或可更改行为的其他效应。然而,本公开的实施方案可以尽可能快地报告由于老化效应或者部件老化、低电压、串扰的最坏状况或同时切换输出之间的其他累积效应而引起的故障的可见效应。

例如,当接近最小允许电压的电压可更改微控制器52对存储器54中的其外部系统RAM的读取或写入访问时,可能出现问题。当电压在非常短的时间段内略低于最小允许电压时,可能发生类似问题。例如,当存在大量的同时切换输出时,可能发生这种情况。例如,对于16位数据总线,当从0x0000切换到0xFFFF时,可能会发生这种情况,其中16个数据位一起切换。在此类情况下,电流的峰值可以高于数据总线上的其他模式的峰值。如果同时去耦电容器由于老化而不再是标称的,则结果可以依据累积效应产生读取问题。

当只有很少的输入和输出切换时,调节器中的电压降可能不重要并且错误不会被看到。对于应用程序软件,可能不会经常遇到同时切换16位,因此具有能够不仅在每次产品启动时而且还定期地产生此类事件的电路可以提供更大的安全性。通过定期在数据总线上产生最坏状况,系统50可以预期对应用程序软件的效应或甚至预确定其日期。通过引起和分析对存储器的异常访问或从存储器的异常访问,系统50可以通过与按照定义需要访问存储器的软件例程相比更可靠的机制(诸如硬件电路)来改善整体安全性。

如上所讨论,本公开的实施方案可以在微控制器内实现,但也可以在驱动存储器设备的任何其他类型的集成电路中实现。在微处理器电路中,可能没有嵌入式闪存存储器,并且系统存储器通常由类型SDR-SDRAM或DDR-SDRAM的外部存储器设备组成。这些动态存储器可以通过深亚微米技术制造,并且每个存储器单元的电子电荷是如此小,使得其需要每64ms(公共值)被刷新一次以维持存储值。在微处理器中,SDRAM(DDR、SDR或两者)控制器可以包括驱动外部存储器设备的电路。刷新命令由DDR控制器定期管理并发送到存储器设备。

本公开的实施方案可以在数字类型的硬件逻辑和电路中实现,像控制器本身一样,其定期确保存储值是正确的并且还通过写入和读取及检查特定模式以产生最差状况或给定效应来对存储器的预定义位置执行检查。例如,本公开的实施方案可以读取预定义地址处的已知值,写入16位值0xAAAA,然后读取该值并检查准确性,然后写入相反数字值,诸如0x5555(0xAAAA的补码),然后读取该值并检查准确性,并且最终将应用程序软件所使用的初始值写回到存储器。可以使用任何合适的数字互补对。写入和读取的值的模式可以包括在PCB板上以及在内部DDR存储器设备上使用最大数量的同时切换输出和最大串扰的模式。对于不具有ECC特征的DDR存储器系统,本公开的实施方案可以报告潜在老化效应或可影响系统稳定性的其他效应。部件的老化可影响数据存储稳定性,尤其是在耦接到其他效应(如串扰)时;工作电压接近最小允许边界时;以及微控制器和存储器设备周围的去耦电容器的老化时。此外,可以使用经典的完整性检查监测器(ICM),其使用循环冗余检查或其他算法。ICM可以是由数字电路、由处理器执行的指令或其合适的组合实现的***设备。ICM可以连接在系统总线上并且在微控制器内部。ICM可以被配置为验证存储在存储器中的数据的完整性。它可以检查,例如,如果位在没有任何功能的情况下由于噪声或其他因素而在存储器中切换,则ICM可以识别错误。本公开的实施方案可以通过识别ICM无法检测到的问题来补充ICM的操作。为了执行检查,本公开的实施方案可以在存储器设备中读取和写入。在该检查时间期间,可能不会执行应用程序软件。由本公开的实施方案用于检查的时间段可以被称为检查时段。检查时段可以与存储器的刷新时段对准,其中刷新时段是存储器的固有特征。检查时段可以是该刷新时段的约数。检查时段可以是可配置的。

可以识别其中写入或读取的值不对应于预期值的问题。在已识别问题的情况下,本公开的实施方案可以在系统50中生成中断,其中中断软件处理程序位于例如嵌入式SRAM中。这可能是由于嵌入式SRAM对下拉电压较不敏感引起的。在一个实施方案中,电路可以被配置为在每次检查时段开始时检查存储器的一个或多个位置。假如执行的应用程序使用ECC(错误代码校正)存储器(需要较大的DDR存储器),则可以关闭或不使用检查电路。通过在存储器控制器中实现本公开的实施方案,可以防止对特定模式的访问使微控制器的内部系统总线过载。然而,在其他实施方案中,检查电路可以位于存储器控制器外部并且生成专用于安全检查的模式,这些模式由系统路由至存储器控制器。

图2示出了根据本公开的实施方案的具有微控制器和存储器设备的系统的另一个视图。微控制器100可以被实现为微处理器或微控制器。可以包括微处理器芯101和包括若干总线的系统总线104,其被称为能够将主装置所请求的访问路由到从装置的总线矩阵。主***设备101、102、104可以被配置为启动对从***设备105、106、107的读取或写入访问。由主装置启动的访问通过包括仲裁器(未示出)、地址解码器(未示出)和多路复用器(未示出)的系统总线矩阵来路由到从装置。为了更容易的可读性,未显示这些子模块。从装置105可以包括外部存储器控制器,该外部存储器控制器可以是静态存储器控制器或动态存储器控制器(SDR/DDR-SDRAM)。因此,***设备108可以是其中存储有要执行的数据或代码的外部存储器设备。***设备可通过模拟电路、数字电路或由处理器执行的指令的任何合适的组合来实现。

系统总线矩阵104可以包括由黑色正方形161、162、163、164、165提供的路由方案。在图2中,***设备101可以被配置为驱动系统总线121,包括地址、读取数据、写入数据和控制信号。***设备102(DMA控制器)可以被配置为驱动系统总线122,并且LCD控制器103可以被配置为驱动系统总线123。

黑色正方形161可以示出使芯101访问(读取/写入)存储器控制器105的能力。黑色正方形164可以指示使***设备101也驱动片上存储器106的能力。黑色正方形166可以指示使***设备101驱动***设备107的能力。正方形162将由DMA控制器102驱动的系统总线122互连到存储器控制器105。正方形163将由LCD控制器103驱动的系统总线123互连到存储器控制器105。因此,正方形161、162、163指示模块104(系统总线矩阵)将所有主装置101、102、103的访问路由到外部存储器控制器105的可能性。来自主装置的每个访问均被路由到系统总线124、125、126、127、128。对于每个主装置,地址解码器(未示出)确定要选择系统总线124、125、126、127、128中的哪一个。针对每个从装置的每个端口存在选择信号(未示出以简化可读性)。例如,如果微控制器启动对系统总线121的访问,则由正方形167、164、166产生的地址解码器(未示出)对地址总线进行解码并且断言对应芯片选择,每个芯片选择线分别位于系统总线126、127、128中。当主装置访问外部存储器设备108时,存储器控制器105将系统总线协议转换成焊盘167和168上所承载的存储器访问协议。

当使用动态存储器设备时,存储器控制器还负责通过167和168生成也承载在相同存储器总线上的刷新命令。

图3示出了根据本公开的实施方案的存储器设备控制器200的更详细架构。此类存储器设备控制器可以例如在图1和图2的微控制器中实现。存储器设备控制器200可以全部或部分地实现图2的控制器105。动态存储器控制器200可以监测图2的微控制器上或连接到微控制器的存储器。

图2的动态存储器控制器105可以通过总线210、211、212处理图3所示的系统总线。在动态存储器设备200中,协议引入针对读取访问的延迟。这些延迟时间段可以用于根据将请求的下面访问向存储器设备提供命令,从而优化整体带宽。

为了具有待执行的潜在下一个访问的信息,可以并行观察或监测若干系统总线。因此,可以监测若干系统总线(在所提供的示例中为三个)。因此,如果管理若干系统总线,则可以使用多路复用器和仲裁器来控制多路复用器202以进行选择。仲裁器可以在子模块204内部并且被配置为将系统总线协议转换成动态存储器协议。仲裁器还可以管理通过端口221、222发送到存储器设备的刷新命令。取决于由端口221、222驱动的存储器设备的类型,协议可以略微不同(DDRI、DDR2、DDR3、LPDDR等),并且因此一组配置寄存器设置在模块203中以管理这些差异。

动态类型的外部存储器嵌入了需要深亚微米技术以及针对每个存储器单元的非常低硅面积的大量存储器。在没有刷新机制的情况下无法长时间维护存储数据。整体存储器平面的公共刷新时段为64ms。该值可以确保存储在存储器中的数据在正常操作状况下的完整性。部件的老化可影响这种稳定性,耦接到其他效应,如串扰、接近最小允许边界进行操作、以及微控制器和存储器设备周围的去耦电容器的老化等。

当微控制器上进行操作的应用程序正在运行位于外部存储器设备中的软件时,如果在读取存储器以执行代码时存在故障状况,则系统可能进入持续一定时间段的不可预测行为,直到看门狗电路(未示出,但为图2所示的系统的一部分)触发系统复位。

为了减小这些类型的效应,控制器200可以包括被配置为定期生成特定模式的电路201。这些模式由读取访问和写入访问组成并且承载在与功能总线相同的总线上。这些访问被多路复用并且像内部系统总线210、211、212上所承载的任何其他访问(应用程序软件访问)一样驱动内部系统总线214。这些附加和常规的访问可以在存储器设备中的预定地址处进行。地址位置可以由用户、配置软件或应用程序软件通过用户接口模块203提供。因此,出于本发明的目的,可以在模块203中添加附加配置寄存器。待检查的地址位置可以承载在信号220上到达模块201。

模块201可以定期生成读取或写入模式。在一个实施方案中,时段基于模块204中的电路中的刷新命令时段并且被重用。刷新命令事件可以承载在信号218上。因此,模块201可以能够在由信号220限定的地址处触发检查模式之前对刷新命令事件的数量进行计数。该检查模式时段可以由电路201的调度器部分创建。

然后,模式可以由模块201中的定序器(也称为状态机或子模块安全增强模式生成器)在内部创建。模式的生成可以由数字逻辑电路实现。模式可以被存储到存储器和从存储器读取。系统总线协议电路可以包括在模块207中以将模式转换成整体系统的系统总线协议。

可以将另一个总线添加到多路复用器202。这可以以任何合适的方式执行。为了说明目的,示出了本发明电路201的系统总线协议子模块。应用程序软件可以使用待检查的地址。因此,如果在安全检查序列结束时未恢复原始(应用程序)值,则在将由应用程序软件使用的地址处写入特定值将毁坏应用程序软件。因此,安全检查模式开始于读取待检查的预定义地址,存储值,检查模式开始,并且在安全模式的结束时,模块201将应用程序值写回到被检查地址中。

图4示出了根据本公开的实施方案的存储器访问的序列。安全检查模式开始于读取待检查的预定义地址,存储值,检查模式开始,并且在安全模式的结束时,模块201将应用程序值写回到被检查地址中。

在图4中,与整体存储器阵列刷新时段相比,检查模式生成时段没有按比例缩放。仅出于说明目的而提出这一点。检查模式持续时间应当尽可能短以便为应用程序软件保留尽可能多的带宽。在图4中,检查模式包括对存储器阵列的第一读取访问R0,其中待检查地址的值被读取以存储在模块201中。然后执行一系列写入和读取。动作写入1(W1)、读取1(R1)、写入2(W2)、读取2(R2)生成数据模式。出于说明目的,模式可以是16位,并且可以是值0x5555、0xAAAA。模式可以被配置为在例如印刷电路板DDR数据线上生成串扰状况。安全检查模式的另一个部分或其他安全检查模式可以包括动作写入3(W3)、读取3(R3)、写入4(W4)、读取4(R4)。W3R3、W4R4安全检查模式可以包括写入和读取0x0000的值,然后进行写入和读取0xFFFF的值。该模式可以被配置为生成用于大量或最大数量的同时切换输出的状况。

对于每个读取访问,将读取数据与预期值进行比较。如果数据没有与预期数据进行比较,则模块201可以向用户接口203报告标志。该信号可以是中断223的源。可以预料到读取或写入外部DDR存储器所遇到的问题,以与没有进行任何检查或仅在系统启动时进行检查的系统中相比更安全的方式管理这些问题。

然后,将应用程序数据写回到已检查地址以使得应用程序软件可以继续运行。安全检查序列由例如存储器平面中的十个连续访问组成。可以通过移除第一读取访问来对其进行优化。存储器控制器知道在存储器设备上执行的所有访问,因此一旦在待检查的预定义地址上执行写入访问(图2的信号220上所承载的值),存储器控制器就可以在内部存储正在写入该地址的数据,因此不再需要在检查序列开始时读取该值。这在图5中示出。图5示出了根据本公开的实施方案的存储器访问的另一个序列。由于可以在将数据写入存储器时进行该序列,因此省略了第一读取。从应用程序写入存储器的数据可以被临时存储。

图6示出了根据本公开的实施方案的存储器访问的序列的定时改变。通过交替专用于串扰的模式和专用于同时切换输出的模式,可以在持续时间方面再次优化模式。这在图6中示出。

其他解决方案,诸如ECC(错误校正码)可以是用于解决问题的有效方式。然而,就存储器大小而言,这可能是昂贵的。完整性检查监测器是用于解决安全性和安保性的另一种方法。然而,任何错误可能在其中被太晚地检测到(具有很多延迟)并且如果存储器包含可执行代码则可能影响系统的行为。因为无法实时检测错误,所以除了通过ECC,本公开的实施方案包括可以可通过MPU中的少量逻辑来提供更多安全性并且在DDR存储器侧上没有额外成本(如ECC)的电路。

本公开的实施方案包括电路,该电路被配置为生成对存储器设备的重复虚设访问;经由嵌入在这些访问中的数据模式为电流峰值创建已知最坏状况;以及经由嵌入在这些访问中的数据模式为串扰创建已知最坏状况,还通过检查一个或多个位置的内容来验证存储器设备的刷新能力(动态存储器)。无需软件来管理这些附加访问并且其对用户而言完全透明。

与如上所述的硬件和电路中的实现方式相反,经由软件来实现本公开的实施方案的挑战包括以下事实:如果软件通过中断提供或访问刷新触发事件,则中断具有处理延迟,这可能使系统变慢。此类延迟可能太慢以至于在另外实现用于读取和写入操作的存储器访问所需的短时间内无法实现。如果中断未提供,则可以使用硬件触发电路(定时器)。当使用存储器外部的定时器时,不得中断特定检查模式以防止应用程序软件读取属于检查数据模式且不是应用程序数据的数据。

已根据一个或多个实施方案描述了本公开,并且应当理解,除了明确陈述的那些之外,许多等同物、替代物、变型和修改是可能的并且在本公开的范围内。虽然本公开易受各种修改形式和替代形式的影响,但是其具体示例性实施方案已经在附图中示出并且在本文中详细描述。然而,应当理解,本文对具体示例性实施方案的描述并非旨在将本公开限于本文所公开的特定形式。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:减少新抗原的接合表位呈递

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!