网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
可签
7
级以上的吧
50
个
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
12月28日
漏签
0
天
amd吧
关注:
782,133
贴子:
17,935,594
看贴
图片
吧主推荐
视频
游戏
1
2
下一页
尾页
23
回复贴,共
2
页
,跳到
页
确定
<返回amd吧
>0< 加载中...
【娱乐贴】关于分支预测写点什么吧
取消只看楼主
收藏
回复
歌迷妳妹
龙跃乘云
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
看到前段时间有人搞混了分支预测和乱序执行,我想我还是写点关于分支预测的东西吧,乱序执行下次有时间再写,希望A黑们看了后下次能黑到点子上。这也不算是什么科普文,纯粹就是个人的心得体会,所以算是娱乐贴吧。
据说A吧不带动图的帖子秒沉……
送TA礼物
IP属地:浙江
1楼
2020-08-18 13:55
回复
歌迷妳妹
龙跃乘云
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
分支预测干什么的这种基本的知识我这里就不讲了,讲讲一些大家容易混淆的概念和一些分支预测技术的实现方法好了。由于我的知识体系都是10年前自学的,所以有些内容可能现在已经发生变化了,如有纰漏还请提醒我。
IP属地:浙江
2楼
2020-08-18 14:00
回复
收起回复
歌迷妳妹
龙跃乘云
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
第一个,分支预测单元是干什么的?上面不是刚讲分支预测干什么的这种基本的知识我这里就不讲了,怎么又开始要讲了。好吧,因为我发现好多人这个概念上有问题,所以还是讲一下吧,从具体的作为逻辑单元的分支预测单元讲开去。
分支预测单元主要解决两个问题,一是大家所熟悉的预测跳转指令是否需要跳转,二是大家经常忽视的预测跳转后的地址。
前面那个大家可能已经很熟悉了,我先讲讲后面这个。为什么要预测预测跳转后的地址?跳转指令不是都带跳转后的地址的吗?主要是因为一般要到解码阶段才能知道这个指令是跳转指令以及跳转后的地址,而解码前还有一个取指阶段。在长流水线/超长流水线的CPU上,取指阶段可能需要3-6个时钟,而解码也可能需要2-4个时钟,如果等到完成解码再确定跳转后的地址,然后再根据该地址取下一条指令,就会产生5-10个时钟的流水线空泡。还有可能因为跳转的跨度比较大,跳转后的地址不在L1I中,需要从L2、L3甚至内从中载入,导致流水线中断,产生巨大的延时损失性能。所以相比是否跳转预测失败损失10-30个时钟,跳转地址未能预测可能会导致更大的性能损失。为此分支预测单元中有个专门的缓冲区,被称为Branch Target Buffers,简称BTB,这个缓冲运作方式类似cache,将近期的跳转指令的地址和跳转后的地址存储在其中,当取指到的指令地址与BTB中的某条记录一致时,就当取到的是一个跳转指令,如果预测跳转的结果为跳转,则根据BTB中同条记录的跳转地址继续取指,以此实现连续取指。并且可根据BTB的内容,将跳转地址所指向的指令预取到L1I中,以提高L1I的命中率。超出BTB容量的跳转指令信息会被丢弃,如果此时改跳转指令再次被取指,就需要等待解码完成才能知道其为跳转指令以及其跳转后的地址,导致流水线产生空泡,无法获得BTB命中的性能提升。所以当代CPU都有一个不小的BTB,以容纳足够多的跳转指令信息,例如K10的BTB为2048项,能存储近期2048个跳转指令的地址及其跳转地址。但BTB既然本质上是个cache,那也得遵循cache的规则,容量越大延时越高。BTB的延时要是太高了,就没存在意义了,等BTB检索到对应的数据时,如果解码都完成了,还要BTB里的数据干什么。所以CPU中的BTB也学cache一样分级,例如推土机的BTB为512项L1和5120项L2,使得推土机可以缓存的跳转地址是K10的2.75倍,而延时大多数情况下与K10相当甚至更好。而到了ZEN,BTB为16项L0、512项L1、4096项L2的结构,新增的L0估计是为了配合op cache,预测跳转后地址从op cache直接发射,使得op cache中可以缓存多个循环体。
IP属地:浙江
5楼
2020-08-18 14:47
回复
收起回复
歌迷妳妹
龙跃乘云
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
然后在回到预测跳转指令是否需要跳转上。关于这个技术上一直在推陈出新,但其实各种不同的分支预测技术下预测成功率提升的绝对值已经是微乎其微了。之前看到的一个评论就很有意思:某新的分支预测技术将预测失败率下降的50%——其实只是把成功率从98%提升到了99%而已。好了这些无聊的东西就不扯了,还说说说我所了解到的一些分支预测技术。
最简单的就是不预测,所有跳转指令都当成需要跳转来执行,错了再清空流水线重来。非常憨的一个策略,但实际成功率能达到50%+。这是因为一个程序中有很多跳转指令都来自于循环,如果一个循环体循环了100次,前99次的跳转指令都是需要跳转的。
然后就是静态预测,就是根据一个固定的规则来预测是否跳转。例如所有向后跳转的都跳转,所有向前的跳转都不跳转。这是因为向后跳转的基本是循环,而向前跳转的基本都是判断。静态预测的成功率能达到70%+,大量应用在一些对于性能无所有,但对功耗比较敏感的场景,例如某些嵌入式CPU。同时静态预测也作为大型复杂CPU动态预测因为没有足够信息无法预测时的预测结果。
IP属地:浙江
8楼
2020-08-18 15:31
回复(15)
收起回复
歌迷妳妹
龙跃乘云
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
接下来就是在大家的讨论中经常出现所谓的分支预测,也就是动态预测。
动态预测最简单的就是2bit计数器,其原理就是每当某个跳转指令跳转时,该指令对应的计数器+1,而当跳转指令没有跳转时,该指令对应的计数器-1。最终计数器会有11、10、01、00四个值,预测时根据首位判断,如果是1预测为跳转,如果是0则预测为不跳转。这么设计是因为代码的分支流向总是具有倾向性,一些经常跳转,而另一些基本不跳转,通过计数器就能将2者区分开来。某个分支如果要从经常跳转翻转为不跳转,需要连续2次不跳转才行,这样就能避免因为偶尔的不跳转或跳转(例如循环结尾),导致预测状态的变化。2bit计数器的成功率一般能达到90%+,因为其结构简单,可以附加载BTB上,每项BTB的数据后面,扩展2bit来记录和表示是否跳转,在命中BTB时,同时预测是否跳转和预测跳转后的地址。
IP属地:浙江
9楼
2020-08-18 16:01
回复
收起回复
歌迷妳妹
龙跃乘云
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
但2bit计数器遇见一些反复横跳的分支时,就无能为力了。例如跳转2次后又不跳转2次,之后又继续跳转2次,这种欠打的分支使用2bit计数器时预测成功率几乎为0。这时候就需要超级飞……咳咳,串台了……这时候就需要两级预测了,需要分支历史表(BHT)和模式历史表了(PHT)。具体原理就是记录一段跳转的历史,例如将跳转记为1,不跳转记为0,则前面提到这个熊孩子跳转指令的分支历史为11001100……将这个记录保存在BHT中,假设BHT每项为4bit,那就可以为某个跳转指令记录近4次的跳转记录,对应上面的例子,某个时刻BHT中的记录为1100。假设PHT每项为2bit,则对应有4种模式,即11、10、01、00。然后将BHT中对应的模式映射到PHT中,例如刚才的例子,BHT为1100,能分解的模式有11、10、00,分别映射到PHT的11、10、00三项中,因为01没有数据就先不管。然后将BHT中对应的后续跳转结果作为预测结果存储到对应的项中,例如BHT中1100的11后面是0,所以PHT中11项的预测结果为0,即不跳转。如果此时记录到该跳转指令已经连续2次跳转,按2bit计数器应该预测为继续跳转,而按两级预测则为不跳转。当BHT和PHT足够大的时候,两级预测的成功率可以达到95%+。
IP属地:浙江
10楼
2020-08-18 17:02
回复
收起回复
歌迷妳妹
龙跃乘云
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
但是两级预测非常消耗晶体管,2bit计数器一个跳转指令只需要2bit,两级预测,即便是上面假设的4bit BHT×2bit PHT,也需要16bit,规模大了8倍。而两级预测要想发挥出效能,一般需要10bit以上的BHT,如果再增加PHT,那规模就是指数级增长了。因此两级预测陷入2难境地,同等规模下,要不为了提高成功率加大BHT的长度而减少BHT的项数,但这样能够预测的跳转指令就少了;要不为了覆盖面增加BHT的项数而减少BHT的长度,但这样预测的成功率又下降了。为此两级预测又发展出了全局与本地分离的策略,每个CPU具有一个全局BHT,其不对应具体的跳转指令,一般会做的非常长,能够记录很长一段时间内所有的跳转指令的跳转情况。另外还有一个本地BHT,就是我们上面介绍的那样,每项对应一个跳转指令,只记录该跳转指令的跳转情况,但每项都比较小,只能记录某个具体跳转指令短期的跳转情况。然后增加一个选择器,根据全局BHT和本地BHT的成功率,选择最高的那个作为本次的预测结果。这就是局部/全局复合预测器了,也被称作锦标赛式预测器,其成功率一般会比单纯的两级预测器高1-2个点。
IP属地:浙江
11楼
2020-08-18 17:08
回复
收起回复
歌迷妳妹
龙跃乘云
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
在复合预测器中,还有一种奇葩被称为Agree预测器。其原理就是一个全局两级预测器加上一个结果计数器,结果计数器结构和原理和2bit计数器类似,预测成功-1,预测失败+1,然后取首位,1为失败,0为成功。最后将两者的结果做异或运算,1xor1=0、1xor0=1、0xor1=1、0xor0=0四种结果,分别对应预测器跳转,计数器失败,结果为不跳转;预测器跳转,计数器成功,结果为跳转;预测器不跳转,计数器失败,结果为跳转;预测器不跳转,计数器成功,结果为不跳转。这种预测器被仅被应用在NetBurst架构上,因为其结构简单搞笑,正好可以适应NetBurst高主频的要求。
IP属地:浙江
12楼
2020-08-18 17:30
回复
收起回复
歌迷妳妹
龙跃乘云
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
上面说了这么多,具体举个例子。就拿K10作为实例吧。
K10的分支预测单元主要由BTB、GHBC、RAS和ITP组成。
BTB为目标地址缓冲,大小为2048项,每项存储一个跳转指令地址和跳转后地址。
GHBC为全局双模计数器,大小为16384项,每项为一个2bit计数器,用于记录对应跳转指令的跳转情况。
RAS为返回地址堆栈,大小为24项,堆栈结构,配合BTB预测调用的返回地址。
ITP为间接目标预测,大小为512项,每项存储一个间接跳转指令指向的寄存器,用于预测多个动态目标的间接分支。
K10的预解码信息存储于L1I,每条指令前都有一个2bit跳转标记,0为不跳转、1为总是跳转、2为动态预测、3为使用返回地址堆栈。当某个指令首次解码后发现是跳转指令时,程序计数器均按跳转地址继续取指,并将该指令的地址和跳转后的地址存储于BTB,同时将L1I中该指令的跳转标记为1,如果该指令后续结果为不跳转,则将L1I中该指令的跳转标记为2,同时为该指令分配1项GHBC,初始化结果为01。当某个指令被取指时,根据其地址判断是否是跳转指令,如果BTB中保存有对应的地址,则判断其为跳转指令,并调整程序计数器按BTB中的跳转后地址继续取指,如果L1I未缓存该地址,则将该地址整行预取到L1I中。如果该指令的跳转标记为2,则检索对应的GHBC项,当该项计数器首位为1时给出跳转的预测,首位为0时给出不跳转的预测。该指令后续结果为跳转,则该项计数器+1,结果为不跳转,则该项计数器-1。如果BTB或GHBC已满,则删除最久远的记录给新的跳转指令使用。
IP属地:浙江
13楼
2020-08-18 18:48
回复
收起回复
歌迷妳妹
龙跃乘云
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
我们可以看到K10的分支预测主要采用了2bit计数器的技术,再举个采用锦标赛式预测器技术的例子。本想以牙膏厂的CPU为例,但因为具体缺少具体参数,还是作罢了,最后还是拿龙芯的GS464E做例子。
GS464E的分支预测单元主要由BTB、GBHT、LBHT、GSEL、RAS和JBTAC组成。
BTB为目标地址缓冲,大小为128项,每项存储一个跳转指令地址和跳转后地址。
GBHT为全局分支历史表,大小为16384项,猜测其历史长度为14bit。
LBHT为局部分支历史表,大小为16384项,猜测其能为128个分支指令按8bit的历史长度提供预测。
GSEL为全局选择表,大小为16384项,能存储GBHT和LBHT预测的成功情况,为使用GBHT还是LBHT的预测结果提供选择依据。
RAS为返回地址堆栈,大小为16项,堆栈结构,配合BTB预测调用的返回地址。
JBTAC大小为1024项,用于预测多个动态目标的间接分支。
某个指令在首次解码发现是跳转指令时,将其地址和跳转地址记录到BTB中,同时按跳转地址继续取指,并将其跳转结果存储到GBHT中。GBHT会为所有跳转指令构建一个16384种模式的历史表,每次根据近期14次不区分跳转指令的跳转情况,对照模式历史表给出GBHT的预测结果。如果某个跳转指令在GBHT的近期14次跳转历史中占8次时,LBHT会为其构建一个256种模式的局部模式历史表,每次根据该跳转指令近期8次的跳转历史,对照模式历史表给出LBHT的预测结果。如果该跳转指令没有被LBHT所记录,则按静态预测规则作为LBHT的预测结果。GSEL记录近期16384个跳转指令GBHT和LBHT的预测成功情况,然后根据GBHT和LBHT的成功情况选择成功率高的那个的作为当前实际的预测结果。
IP属地:浙江
16楼
2020-08-19 01:31
回复
收起回复
歌迷妳妹
龙跃乘云
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
总结了一下3L讨论的内容,加上近期又翻阅了一些资料,这里和大家说说ZEN系列的分支预测单元吧。BTB等其他单元这里就不赘述了,重点讲讲动态分支预测器。首先ZEN/ZEN+和ZEN2的动态分支预测器是不同的,更准确的说法应该是ZEN/ZEN+的动态分支预测器是ZEN2的子集。ZEN/ZEN+的动态分支预测器被称为神经网络预测器,这种预测器的分支历史表中,1为跳转,-1为不跳转。然后感知器根据分支历史表中历史跳转结果与本次跳转结果的相关性,赋予历史表每个数据位对应的权重值。目前ZEN系列的权重值大小设定未知,假设为最简单的2bit,则每次历史分支结果具有-2、-1、1、2,四级权重。正数代表正相关,负数代表负相关,绝对值越大相关性就越强。预测时将历史表和权重表做卷积,结果大于等于0则跳转,否则不跳转。神经网络预测器具有简单高效低延时的特点,甚至能在1个时钟内输出多个不同跳转指令的预测结果,但缺点是需要一段训练才能让达到较高的成功率。因此ZEN2在ZEN/ZEN+的基础上,又增加了一个Tage预测器。Tage预测器全称为标记几何历史长度预测器,其由多个全局分支历史表组成,为覆盖所有情况,每个历史表的记录长度不同,形成一个几何级数,因此得名。其具有目前最高的分支预测成功率,曾在CBP锦标赛中大满贯4个冠军。但因其结构复杂,延迟比较高,可能需要几个时钟才能输出预测结果。所以农企将其作为ZEN2的L2预测器,保留ZEN/ZEN+的神经网络预测器作为L1预测器。ZEN2首先按L1预测器的预测结果执行跳转指令,如果几个时钟之后L2预测器给出的预测结果与L1预测器不同,则更新L1预测器并回滚采用L2的预测执行跳转指令。相比预测失败损失15-20个时钟,这种回滚的惩罚可能只有几个时钟。
IP属地:浙江
18楼
2020-08-20 23:23
回复(4)
收起回复
歌迷妳妹
龙跃乘云
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
补充:
ZEN系列在首次解码后发现是分支指令时,均按不跳转处理,同时也不记入BTB。之后如果实际结果为跳转,则将该指令的地址和目标地址记入BTB同时静态标记为总是跳转。如果该指令在后续执行中出现不跳转的情况,才为其启用动态分支预测。
这样设计的好处是首次执行蒙一把不跳转,蒙对没损失,蒙错损失18个时钟。虽然如前面所说跳转的分支占比会更大一些,但如果按跳转处理,就需要回滚取指和解码,这样即便蒙对了还是要损失6个时钟,蒙错也一样要损失18个时钟,不如直接“将错就错”。假设55%的分支会跳转,则首次设定为不跳转的平均损失为9.9个时钟,而首次设定为跳转的平均损失为11.4个时钟。而且不跳转的分支也不需要预取跳转目标地址的指令,也就不用记入BTB,节省了BTB的容量。
之后发现出现跳转后,依旧按静态预测设定为总是跳转,避免非条件跳转占用全局分支历史表并干扰干扰感知器运作。说到这里我又得说声抱歉,因为神经网络预测分支所需的权重表相对历史表的大小呈线性关系,就脑补了其结构简单,可以像2bit计数器一样给每个跳转指令分配一套,然后自己管自己训练、预测,跳转指令之间互不干扰。结果发现感知器还是很复杂的,相对两级预测的模式表,如果历史长度较短的话,权重表省下的晶体管还不够造几个感知器。何况权重表对应历史表每个数据位不像模式表一样只要1bit,为了权重分级的细化可能需要数个甚至十多个bit。以至于后来才发现ZEN系列的神经网络预测器只有1个或2个长度未知的全局分支历史表,并没有每个跳转指令一个本地分支历史表,至于权重表应该是每个跳转指令一个专属,但感知器只有2套,同一个时钟可以对2个分支输出各自的相关性权重值。所以为了解决非条件跳转占用全局分支历史表,导致历史表实际可同用长度缩短,并且可能误导感知器给出错误的权重,导致预测失败率上升,农企将首次跳转的跳转指令都当成非条件跳转默认为总是跳转,仅当这些指令再次出现不跳转时才将其纳入动态预测。
IP属地:浙江
19楼
2020-08-21 12:04
回复
收起回复
歌迷妳妹
龙跃乘云
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
AMD
K5:最多512项2bit计数器(同BTB一同附加在L1I的缓存行之后)
K6:9bit长度全局两级预测器
K7:16K项2bit计数器
K8:16K项2bit计数器
K10:16K项2bit计数器
Bulldozer:局部/全局复合预测器(12bit长度全局两级预测器+不明项数的局部2bit计数器)
Piledriver:局部/全局复合预测器(12bit长度全局两级预测器+不明项数的局部2bit计数器)
Steamroller:局部/全局复合预测器(12bit长度全局两级预测器+不明项数的局部2bit计数器)
Excavator:局部/全局复合预测器(12bit长度全局两级预测器+不明项数的局部2bit计数器)
ZEN/ZEN+:神经网络预测器
ZEN2:分层预测器(L1神经网络预测器,L2 Tage预测器)
Intel
P1:256项2bit计数器(附加在BTB之后)
Pmmx:512项4bit长度局部两级预测器(附加在BTB之后)
P2:512项4bit长度局部两级预测器(附加在BTB之后)
P3:512项4bit长度局部两级预测器(附加在BTB之后)
Netburst:16bit长度Agree预测器
Prescott:16bit长度Agree预测器
PM:混合预测器(8bit长度全局两级预测器+128项循环计数器)
Core2:混合预测器(8bit长度全局两级预测器+128项循环计数器)
Nehalem:混合预测器(2个18bit长度全局两级预测器(可能非全模式)+32项循环计数器)
Sandy Bridge:32bit长度全局两级预测器(非全模式)
Ivy Bridge:32bit长度全局两级预测器(非全模式)
Haswell:混合预测器(超过30bit长度的全局两级预测器(可能非全模式)+超过32项的循环计数器)
Broadwell:混合预测器(超过30bit长度的全局两级预测器(可能非全模式)+超过32项的循环计数器)
Skylake:混合预测器(超过30bit长度的全局两级预测器(可能非全模式)+超过32项的循环计数器)
IP属地:浙江
20楼
2020-08-21 17:03
回复(3)
收起回复
歌迷妳妹
龙跃乘云
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
Bobcat:26bit长度全局两级预测器(非全模式)
Jaguar:26bit长度全局两级预测器(非全模式)
Atom:12bit长度全局两级预测器
Silvermont:12bit长度全局两级预测器
Goldmont:12bit长度全局两级预测器
Nano:局部/全局复合预测器(12bit长度全局两级预测器+不明项数的2bit长度局部两级预测器)
GS464E:局部/全局复合预测器(14bit长度全局两级预测器+不明项数不明长度的合计16k项局部两级预测器)
IP属地:浙江
22楼
2020-08-21 17:32
回复(4)
收起回复
歌迷妳妹
龙跃乘云
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
刚刚被设精啦,就再写点吧。
ZEN2的L2预测器——TAGE预测器,前面只是简单的提了一下,这里写一点它的原理吧。因为农企目前还没有公开,所以下面说写的参数都只是为了方便说明采用的示例。
TAGE预测器中的TAGE是tagged geometric各取前两个字母的缩写,全称为tagged geometric history length branch prediction,意为标记几何历史长度分支预测。结构上,其有数个长度呈几何级数增长的分支历史表(BHT),每个BHT有对应的一组tagged predictor components,简称TPC,意为标记预测器组件。每组TPC由多项组成,每项包含预测计数器、标签(tag)和启用标记三部分。预测计数器是一个2bit或3bit饱和计数器,标签是PC值和本组对应分支历史表的hash值,启用标记表示对应的hash值是否存在分支历史记录。
假设某TAGE预测器有三个BHT,最短长度为16bit,则BHT T1为16bit、BHT T2为32bit、BHT T3为64bit。假设TPC的tag长度为8bit,则每组TPC有256项。假设TPC的预测计数器为3bit饱和计数器,则TPC每项大小为3+8+1=12bit,整个TAGE预测器的存储空间为(16+32+64+12*256*3)/8/1024≈1.14KB。
使用时,三组BHT按各自历史长度记录分支历史,并将每个跳转指令的PC值分别与三组BHT的值hash成8bit的tag,并分别搜索三组BHT对应的TPC中tag相同的项。如果该项启用标记为0,则更新启用标记为1,并初始化预测计数器;如果该项启用标记为1,则根据跳转的执行结果,跳转则预测计数器+1,不跳转则预测计数器-1。当一个跳转指令需要预测时,首先将其PC值分别与三组BHT的值hash成8bit的tag,然后分别搜索三组BHT对应的TPC中tag相同的项,如果该项启用标记为1,则表示TPC命中,输出该项预测计数器的首位值作为预测结果。如果三组TPC中有多组命中,则取其中对应BHT长度最长的为最终预测结果。如果三组TPC均未命中,则输出预测失败,采用其他预测器的预测结果。
IP属地:浙江
25楼
2020-08-25 10:29
回复
收起回复
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧热议榜
1
盘点2024弱智吧年度精选段子
1809930
2
076两栖攻击舰四川舰下水
1435848
3
TES横扫TT晋级决赛
1363180
4
57岁王祖贤晒出罕见自拍照
1014039
5
C罗炮轰金球奖不公平
976248
6
燕云十六声开启公测
874850
7
《新蝙蝠侠2》电影延期
760176
8
KPL打野花海告别赛场
752951
9
索尼将获得角川董事会席位
550000
10
24年小米高端手机全球销量超千万
438606
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示