融合if-then指令的微处理器的制造方法

文档序号:6546306阅读:166来源:国知局
融合if-then指令的微处理器的制造方法
【专利摘要】本发明公开了一种融合IF-THEN指令的微处理器,包含一指令转译单元,用以由IT指令抽取条件资讯以及将IT指令融合于第一IT区块指令。对于IT区块的每个指令,此指令转译单元使用由IT指令所抽取的条件资讯来确认IT区块指令的相对应条件,以及将IT区块指令转译为微指令,此微指令包含此相对应条件。微处理器并包含多个执行单元,用以依据此相对应条件以执行微指令。对于各个IT区块指令,指令转译单元利用所抽取的条件资讯确认一相对应状态值。此状态值包含IT指令的低位八个位元,且其中低位五个位元左移N-1位元,其中,N是指此IT区块指令在IT区块内的位置。
【专利说明】融合IF-THEN指令的微处理器

【技术领域】
[0001]本申请案主张2013年5月21日提出申请的美国临时申请案第61/825,699号“融合IF-THEN指令的微处理器”的优先权,此案件系整体引用为本案的公开公开内容。
[0002]本发明关于微处理器的【技术领域】,特别是关于非循序执行(out-of-orderexecut1n)微处理器。

【背景技术】
[0003]条件指令的执行是处理器指令集的一个重要议题。举例来说,条件分支指令几乎存在于每个指令集且经常被程序使用。除了分支指令,指令集亦会包含其他种类有条件执行的指令。
[0004]对于提升处理器效能的要求持续存在。相较于只能依序执行指令的处理器,具有微架构能使处理器不依照程序顺序执行指令(非循序执行),通常可以获得显著的效能提升。因此,对于指令集内具有条件指令的处理器而言,寻找一个方法改善处理器非循序执行的效能,是一个亟待解决的问题。


【发明内容】

[0005]本发明的一实施例提供一微处理器。此微处理器包含一指令转译单元,用以由该IT指令抽取条件资讯以及将该IT指令融合于一 IT区块指令。对于该IT区块的每个指令,此指令转译单元使用由该IT指令所抽取的该条件资讯以确认该IT区块指令的一相对应条件,以及将该IT区块指令转译为一微指令,而此微指令包含该相对应条件。此微处理器并包含多个执行单元,用以依据该相对应条件,以条件地执行该微指令。
[0006]本发明的另一实施例提供一种利用一微处理器执行一 If-Then(IT)指令与一相关IT区块的方法,此方法包含由该IT指令抽取条件资讯的步骤。对于该IT区块的每个指令,此方法包含:使用由该IT指令所抽取的该条件资讯以确认该IT区块指令的一相对应条件;将该IT区块指令转译为一微指令,而此微指令包含该相对应条件;以及依据该相对应条件,条件地执行该微指令。对于该IT区块的该第一指令,前述将该第一 IT区块指令转译为一微指令的步骤系包含将该IT指令融合于该IT区块指令。
[0007]本发明的又一实施例提供一个微处理器。此微处理器包含一指令转译单元,透过将一 IF-Then(IT)指令与一邻近程序指令的融合,以将该IT指令与一相关联IT区块转译出M个微指令。此IT区块包含M个指令,其中,M为一大于零的整数。此微处理器并包含多个执行单元,用以执行由该IT指令与该相关联IT区块转译出的该M个微指令。
[0008]本发明的又一实施例提供一种利用一微处理器执行的方法。此方法包含:利用该微处理器的一指令转译单元,将一 IF-Then(IT)指令与一邻近程序指令融合,以将该IT指令与一相关联IT区块转译出M个微指令。此IT区块包含M个指令,其中M为一大于零的整数。此方法并包含利用该微处理器的多个执行单元,执行由该IT指令与该相关联IT区块转译出的该M个微指令。
[0009]本发明的又一实施例提供一种微处理器。此微处理器包含一指令转译单元,用以将N个指令的指令序列转译为M个微指令的第一指令序列,其中,该N个指令的指令序列为一 IF-Then(IT)指令与跟随该IT指令的一相关联的IT指令区块,其中各该IT区块指令为一非条件指令,该非条件指令会透过IT指令所指定条件的暗示而变为条件指令,其中,N为一大于一的整数,M为一大于零的整数。此指令转译单元亦将N-1个指令的指令序列转译为M个微指令的第二指令序列,其中,该N-1个指令的指令序列对应于该IT区块指令,其中该N-1个指令的每一个指定与其相对应的IT区块指令相同的操作,但对该相对应的IT指令区块所暗示的指定条件予以明确指定,其中,该第二指令序列与该第一指令序列相同。此微处理器亦包含多个执行单元,用以执行由该指令转译单元所产生的该些微指令。
[0010]本发明的又一实施例提供一种利用一微处理器执行的方法。此方法包含:利用一指令转译单元,将N个指令的指令序列转译为M个微指令的第一指令序列,其中,该N个指令的指令序列为一 IF-Then(IT)指令与跟随该IT指令的一相关联的IT指令区块,其中各该IT区块指令为一非条件指令,该非条件指令会透过IT指令所指定条件的暗示而变为条件指令,其中,N为一大于一的整数,M为一大于零的整数。此方法亦包含:利用该指令转译单元,将N-1个指令的指令序列转译为M个微指令的第二指令序列,其中,该N-1个指令的指令序列对应于该IT区块指令,其中该N-1个指令的每一个指定与其相对应的IT区块指令相同的操作,但对该相对应的IT指令区块所暗示的指定条件予以明确指定,其中,该第二指令序列与该第一指令序列相同;此方法亦包含:利用多个执行单元,用以执行由该指令转译单元所产生的该些微指令。
[0011]关于本发明的优点与精神可以藉由以下的发明详述及附图得到进一步的了解。

【专利附图】

【附图说明】
[0012]图1为本发明一微处理器的方块示意图。
[0013]图2为图1的指令格式化单元为各个IT区块指令所产生的ITSTATE的一实施例的方块示意图。
[0014]图3为图1的FSTATE的一实施例的方块示意图。
[0015]图4为图1的格式化指令队列(FIQ)的项目的一实施例的方块示意图。
[0016]图5为图1的指令间接暂存器(IIR)的项目的一实施例的方块示意图。
[0017]图6为图1的重排缓冲器(ROB)的项目一实施例的方块示意图。
[0018]图7为图1的微处理器执行IT指令与IT区块的一实施例的流程图。
[0019]图8为图1的微处理器所执行的操作一实施例的流程图。
[0020]图9为图1的微处理器执行图8的操作的一实施例的方块示意图。
[0021]图10为图1的微处理器执行图8的操作的另一实施例的方块示意图。
[0022]其中,附图标记:
[0023]微处理器100指令快取102
[0024]指令转译单元104暂存器别名表(RAT) 112
[0025]保留站114执行单元116
[0026]引退单元118格式化单元状态(FSTATE) 126
[0027]储存处理器状态暂存器(SPSR) 128 指令间接暂存器(IIR) 122
[0028]重排缓冲器(ROB) 124
[0029]指令格式化单元132
[0030]格式化指令队列(FIQ) 134
[0031]指令转译器136
[0032]微指令154
[0033]格式化单元状态(formatter state, FSTATE)储存空间126
[0034]程序指令152
[0035]延伸指令队列(XIQ) 138
[0036]ITSTATE 值 202
[0037]执行前位元206
[0038]全部条件208
[0039]罩遮位元212
[0040]ITSTATE 栏位 304
[0041]计数栏306
[0042]格式化指令队列134的项目402
[0043]栏位406
[0044]ITSTATE 栏位 404
[0045]指令间接暂存器(IIR)的项目502
[0046]罩遮栏位504
[0047]重排缓冲器的项目602
[0048]融合旗标604
[0049]完成旗标606
[0050]例外旗标608
[0051]后续指令指标(NSIP)栏位612
[0052]结果栏位614
[0053]Thumb 指令 902
[0054]格式化指令904
[0055]微指令906
[0056]程序指令1002
[0057]格式化指令1004
[0058]微指令1006

【具体实施方式】
[0059]名词定义
[0060]IF-Then(IT)指令,系赋予紧接在IT指令后方的N个指令条件,N大于零。本文将此N个指令称为“IT区块”或“IT区块指令”。IT指令所包含的条件资讯可透过:(I)N,以及(2) IT区块各个指令的条件,加以确定。举例来说,进阶精简指令集机器(Advanced RISCMachines, ARM)架构的IT指令即是本文所定义的IT指令。
[0061]IT区块,系紧接在前方的指令后并被此指令赋予条件的N个指令,N大于零。此在前方的指令称为“IT指令”。IT区块内的N个指令中的每一个的相对应条件,可透过IT指令的条件资讯加以确定。举例来说,ARM架构的IT区块即是本文所定义的IT区块。
[0062]将一第二指令融合(Fusing)于一第一指令,指将第一指令与第二指令集体地转译为C个微指令。C小于A与B的加总,其中,A是第一指令在不与其他指令融合的情况下,透过转译通常会产生的微指令的数量,B是第二指令在不与其他指令融合的情况下,透过转译通常会产生的微指令的数量。在许多事例中,A、B与C都是一。亦即,将一第二指令融合于一第一指令系指将第一与第二指令转译出单一个微指令。
[0063]指令转译单元,系处理器内将第一指令集的指令转译为第二指令集的指令的硬件。第一指令集系撰写程序的程序人员可由外部看见并由微处理器加以执行。亦即,第一指令集具有架构,其系遵守一指令集架构(ISA)。本文的第一指令集的指令是指,指令、巨集指令、程序指令、架构指令、或是ISA指令。本文的第二指令集的指令是指微指令,执行一个或多个微指令的执行结果系由程序指令所定义。因此,多个执行单元对于一个或多个微指令的集体执行可由程序指令所实现(implement);亦即,多个执行单元对于由指令转译单元所产生的实现微指令的集体执行,系执行由程序指令所指定的操作于程序指令所指定的输入上,以产生程序指令所定义的结果。被融合的程序指令所转译出的微指令系实现此被融合的程序指令。
[0064]指令集,定义二进位制编码值的集合(即机器语言指令)与微处理器所执行操作间的对应关系。机器语言指令指示微处理器执行的操作如:将暂存器I内的运算元与暂存器2内的运算元相加并将结果写入暂存器3、将记忆体地址0x12345678的运算元减掉指令所指定的立即运算元并将结果写入暂存器5、依据暂存器7所指定的位元数对暂存器6内的数值进行位移、若是零旗标被设定时分支到指令后方的36个位元组、将记忆体地址OxABCDOOOO的数值载入暂存器8。因此,指令集系定义各个机器语言指令使微处理器执行所欲执行的操作的二进位编码值。须了解的是,指令集定义二进位值与微处理器操作间的对应关系,并不意味着单一个二进位值就会对应至单一个微处理器操作。具体来说,在部分指令集中,多个二进位值可能会对应至同一个微处理器操作。
[0065]指令集架构(ISA),从微处理器家族的脉络来看,包含:⑴指令集;⑵指令集的指令所能存取资源(例如:暂存器与记忆体定址模式)的集合;以及(3)微处理器回应指令集的指令执行所产生的例外事件集(例如:除以零、分页错误、记忆体保护违反等)。因为程序撰写者,如组译器与编译器的撰写者,想要作出可在一微处理器家族执行的机器语言程序时,就需要此微处理器家族的ISA定义,所以微处理器家族的制造者通常会将ISA定义于操作者操作手册中。举例来说,2009年3月公布的Intel64与IA-32架构软件开发者手册(Intel64and IA-32Architectures Software Developer’s Manual)即定义 Intel64与IA-32处理器架构的ISA。此软件开发者手册包含有五个章节,第一章是基本架构;第二A章是指令集参考A至M ;第二 B章是指令集参考N至Z ;第三A章是系统编程指南;第三B章是系统编程指南第二部分,此手册系列为本案的参考文件。此种处理器架构通常被称为x86架构,本文中则是以x86、x86ISA、x86ISA家族、x86家族或是相似用语来说明。在另一个例子中,2010年公布的ARM架构参考手册,ARM v7_A与ARM v7_R版本Errata markup,定义ARM处理器架构的ISA,此参考手册整体系引用为本说明书的公开内容。此ARM处理器架构的ISA在此亦被称为ARM、ARM ISA、ARM ISA家族、ARM家族或是相似用语。其他众所周知的 ISA 家族还有 IBM System/360/370/390 与 z/Architecture、DEC VAX、Motorola68k、MIPS、SPARC、PowerPC与DEC Alpha等等。ISA的定义会涵盖处理器家族,因为处理器家族的发展中,制造者会透过在指令集中增加新指令、以及/或在暂存器组中增加新的暂存器等方式来改进原始处理器的ISA。举例来说,随着x86程序集架构的发展,其于Intel PentiumIII处理器家族导入一组128位元的多媒体扩展指令集(MMX)暂存器作为单指令多重数据流扩展(SSE)指令集的一部分,而X86ISA机器语言程序已经开发来利用XMM暂存器以提升效能,虽然现存的X86ISA机器语言程序并不使用单指令多重数据流扩展指令集的XMM暂存器。此外,其他制造商亦设计且制造出可执行X86ISA机器语言程序的微处理器。例如,超微半导体(AMD)与威盛电子(VIA Technologies)即在x86ISA增加新技术特征,如超微半导体的3DN0W!单指令多重数据流(SMD)向量处理指令,以及威盛电子的Padlock安全引擎随机数产生器(random number generator)与先进译码引擎(advanced cryptographyengine)的技术,前述技术都是采用x86ISA的机器语言程序,但却非由现有的Intel微处理器实现。以另一个实例来说明,ARM ISA原本定义ARM指令集状态具有4位元组的指令。然而,随着ARM ISA的发展而增加其他指令集状态,如具有2位元组指令以提升编码密度的Thumb指令集状态以及用以加速Java位元组码程序的Jazelle指令集状态,ARM ISA机器语言程序已被发展来使用部分或所有其他ARM ISA指令集状态,即使现存的ARM ISA机器语言程序并非采用这些其他的ARM ISA指令集状态。
[0066]ARM架构系指定一 ARM指令集与一 Thumb指令集,ARM指令集系一 32位元指令集。Thumb指令集原本系开发为具有ARM指令集功能的子集的16位元指令集,ARM ISA的后续版本导入Thumb-2的技术,使原本Thumb指令集能够延伸出许多32位元指令。当32位元指令字的高位(upper)四个位元被设定时,在ARM指令集中的大部分指令都可被条件执行。然而,此四个位元通常无法在16位元的Thumb指令中找到对应(例如,例外系一条件分支指令)。
[0067]因应此不足之处,ARM架构具有一个称为If-Then(IT)的指令。如ARM架构参考手册第A8-104页所称,“If Then指令可对其后续至多四个指令(即IT区块)赋予条件。IT区块内的指令的条件可与其相同,或部分与其相反”。2010年公布的ARM架构参考手册,ARM v7-A与ARM v7_R版本Errata markup,整体系引用为本说明书的公开内容。此ARM IT指令指定一第一条件(位元[7:4])与一罩遮(位元[3:0])。此第一条件可以是表1所示的十五个可能条件的其中之一(条件值‘1111’为无法预期(UNPREDICTABLE))。
[0068]

【权利要求】
1.一个微处理器,其特征在于,包含: 一指令转译单元,用以: 由一 IT指令抽取条件资讯; 将该IT指令与一 IT区块指令融合;以及 对于该IT区块的每个指令: 使用由该IT指令抽取的该条件资讯确认该IT区块指令的一相对应条件;以及 将该IT区块指令转译为一微指令,该微指令包含该相对应条件;以及 多个执行单元,用以依据该相对应条件,条件地执行该微指令。
2.如权利要求1所述的微处理器,其特征在于,该IT指令包含一ARM架构IT指令。
3.如权利要求1所述的微处理器,其特征在于,该指令转译单元还用以: 对于该IT区块的每个指令,使用所抽取的该条件资讯确认一相对应状态值,其中该状态值包含该IT指令的低位8位元,该IT指令的低位5位元左移N-1位元,N指该IT区块指令在该IT区块内的位置。
4.如权利要求3所述的微处理器,其特征在于,该微处理器还用以: 检测该IT区块的所转译出的微指令是否有导致一例外条件的一微指令;以及 将关联于该例外的一 ARM架构储存程序状态暂存器的低位八位元,填入转译出且导致该例外条件的该微指令的该相对应状态值。
5.如权利要求3所述的微处理器,其特征在于,对于该IT区块的每个指令: 该IT区块指令转译出的该微指令内的该相对应条件包含该相对应状态值的[7:4]位J Li ο
6.如权利要求1所述的微处理器,其特征在于,该IT区块指令与该IT指令所融合的该微指令仅执行该IT区块指令指定的操作,而不为该IT指令执行任何操作。
7.如权利要求1所述的微处理器,其特征在于,该微处理器还用以发布由该指令转译单元产生的该些微指令以供非循序执行。
8.如权利要求1所述的微处理器,其特征在于,在至少一事例中,该指令转译单元用以: 在一第一时钟周期内,由该IT指令抽取该条件资讯; 对于一部分的该IT区块指令,在该第一时钟周期内,使用所抽取的该条件资讯确认该IT区块指令的该相对应条件;以及 对于剩余的该IT区块指令,在该微处理器接续该第一时钟周期的一个或多个时钟周期内,使用所抽取的该条件资讯确认该IT区块指令的该相对应条件。
9.一种利用一微处理器执行一 If-Then指令与一相关IT区块的方法,其特征在于,该方法包括: 由该IT指令抽取条件资讯; 对于该IT区块的每个指令: 使用由该IT指令抽取的该条件资讯确认该IT区块指令的一相对应条件; 将该IT区块指令转译为一微指令,该微指令包含该相对应条件;以及 依据该相对应条件,条件执行该微指令;以及 其中对于该IT区块的该第一指令,将该IT区块指令转译为一微指令的步骤包含将该IT指令与该IT区块指令融合。
10.如权利要求9所述的方法,其特征在于,该IT指令包含一ARM架构IT指令。
11.如权利要求9所述的方法,其特征在于,该方法还包含: 在将该IT区块指令转译为该微指令的步骤前,对于该IT区块的每个指令,使用所抽取的该条件资讯确认一相对应状态值,其中该状态值包含该IT指令的低位8位元,该IT指令的低位5位元左移N-1位元,N指该IT区块指令在该IT区块内的位置。
12.如权利要求11所述的方法,其特征在于,该方法还包含: 检测该IT区块转译出的微指令中是否有导致一例外条件的一微指令,以因应条件执行该微指令的步骤;以及 将关联于该例外的一 ARM架构储存程序状态暂存器的低位八位元,填入转译出导致该例外条件的该微指令的该指令的该相对应状态值,以因应该检测步骤。
13.如权利要求11所述的方法,其特征在于,对于该IT区块的每个指令: 该IT区块指令转译出的该微指令内的该相对应条件包含该相对应状态值的[7:4]位J Li ο
14.如权利要求9所述的方法,其特征在于,该IT区块指令与该IT指令融合出的该微指令仅执行该IT区块指令指定的操作,而不为该IT指令执行任何操作。
15.如权利要求9所述的方法,其特征在于,还包含: 其中,条件执行由该IT区块的各个指令所转译产生的该微指令的步骤包含发布该些微指令用以依据非循序方式来执行。
16.如权利要求9所述的方法,其特征在于,在至少一事例中,由该IT指令抽取该条件资讯的步骤在一第一时钟周期内执行,对于一部分的该IT区块指令,使用所抽取的该条件资讯确认该IT区块指令的该相对应条件的步骤,在该第一时钟周期内执行,对于剩余的该IT区块指令,使用所抽取的该条件资讯确认该IT区块指令的该相对应条件,是在该微处理器接续该第一时钟周期的一个或多个时钟周期内执行。
17.一个微处理器,其特征在于,包含: 一指令转译单元,将一 IF-Then指令与一邻近程序指令融合,以将该IT指令与一相关联IT区块转译出M个微指令,其中,该IT区块包含M个指令,其中,M为一大于零的整数;以及 多个执行单元,用以执行由该IT指令与该相关联IT区块转译出的该M个微指令。
18.如权利要求17所述的微处理器,其特征在于,该M个微指令所执行的操作大致相对应于该IT区块的该M个指令所指定的操作,其中,该M个微指令内不包含一对应于该IT指令的微指令。
19.如权利要求17所述的微处理器,其特征在于,该指令转译单元用以: 对于该IT区块的每个指令,使用由该IT指令所抽取的资讯确认一相对应状态值,其中该状态值包含该IT指令的低位8位元,该IT指令的低位5位元左移N-1位元,N指该IT区块指令在该IT区块内的位置。
20.如权利要求19所述的微处理器,其特征在于,该微处理器还用以: 检测该IT区块的转译出的该M个微指令的其中之一是否导致一例外条件;以及 将关联于该例外的一 ARM架构储存程序状态暂存器的低位八位元,填入转译出该M个微指令中导致该例外条件的该微指令的该相对应状态值。
21.如权利要求19所述的微处理器,其特征在于,该指令转译单元还用以: 对于该IT区块的每个指令,将该IT区块指令转译出该M个微指令的至少其中之一,并且转译出的该微指令具有一条件系包含该相对应状态值的[7:4]位元。
22.一种利用一微处理器执行的方法,其特征在于,该方法包括: 利用该微处理器的一指令转译单元,将一 IF-Then指令与一邻近程序指令融合,以将该IT指令与一相关联IT区块转译出M个微指令,其中,该IT区块包含M个指令,其中,M系一大于零的整数;以及 利用该微处理器的多个执行单元,执行由该IT指令与该相关联IT区块转译出的该M个微指令。
23.如权利要求22所述的方法,其特征在于,该M个微指令所执行的操作大致相对应于该IT区块的该M个指令所指定的操作,其中,该M个微指令内不包含一对应于该IT指令的微指令。
24.如权利要求22所述的方法,其特征在于,还包含: 对于该IT区块的每个指令,使用由该IT指令所抽取的资讯确认一相对应状态值,其中该状态值包含该IT指令的低位8位元,该IT指令的低位5位元左移N-1位元,N指该IT区块指令在该IT区块内的位置。
25.如权利要求24所述的方法,其特征在于,还包含: 检测该IT区块转译出的该M个微指令的其中之一是否导致一例外条件;以及 将关联于该例外的一 ARM架构储存程序状态暂存器的低位八位元,填入转译出该M个微指令中导致该例外条件的该微指令的该相对应状态值。
26.如权利要求24所述的方法,其特征在于,还包含:对于该IT区块的每个指令,将该IT区块指令转译出该M个微指令的至少其中之一,并且转译出的该微指令具有一条件系包含该相对应状态值的[7:4]位元。
27.一种微处理器,其特征在于,包含: 一指令转译单元,用以: 将N个指令的指令序列转译为M个微指令的第一指令序列,其中,该N个指令的指令序列系一 IF-Then指令与跟随该IT指令的一相关联的IT指令区块,其中各该IT区块指令为一非条件指令,该非条件指令暗示会透过IT指令所指定的条件变为条件指令,其中,N为一大于一的整数,M为一大于零的整数;以及 将N-1个指令的指令序列转译为M个微指令的第二指令序列,其中,该N-1个指令的指令序列对应于该IT区块指令,其中该N-1个指令的每一个系指定与其相对应的IT区块指令相同的操作,但明确指定该相对应的IT指令区块所暗示的该指定条件,其中,该第二指令序列与该第一指令序列相同;以及 多个执行单元,用以执行由该指令转译单元所产生的该些微指令。
28.如权利要求27所述的微处理器,其特征在于,该指令转译单元用以将该IT指令与一邻近指令融合。
29.—种利用一微处理器执行的方法,其特征在于,包含: 利用一指令转译单元,将N个指令的指令序列转译为M个微指令的第一指令序列,其中,该N个指令的指令序列系一 IF-Then指令与跟随该IT指令的一相关联的IT指令区块,其中各该IT区块指令为一非条件指令,该非条件指令暗示会透过IT指令所指定的条件变为条件指令,其中,N为一大于一的整数,M为一大于零的整数; 利用该指令转译单元,将N-1个指令的指令序列转译为M个微指令的第二指令序列,其中,该N-1个指令的指令序列对应于该IT区块指令,其中该N-1个指令的每一个系指定与其相对应的IT区块指令相同的操作,但明确指定该相对应的IT指令区块所暗示的该指定条件,其中,该第二指令序列与该第一指令序列相同;以及 利用多个执行单元,用以执行由该指令转译单元所产生的该些微指令。
30.如权利要求29所述的方法,其特征在于,将该N个指令的指令序列转译为该M个微指令的第一指令序列的步骤包含将该IT指令与一邻近指令融合。
【文档编号】G06F9/30GK104182204SQ201410198641
【公开日】2014年12月3日 申请日期:2014年5月12日 优先权日:2013年5月21日
【发明者】泰瑞·派克斯, G·葛兰·亨利 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1