本文约5113字,需9分钟阅读

我们都知道之所?#32422;?#31639;机能够进行计算,主要靠的是大规模集成电路中由晶体管组成的逻辑电路。这些逻辑电路使得计算机能够进?#24615;?#31639;及判断。但对于一个简单逻辑电路来讲,它只能进行一个完整运算中的部分操作,所以人们通过组合这些简单逻辑电路,这样就可以让计算机进行复杂的运算了。当CPU设计人员将这些组合逻辑电?#20998;?#20316;成通用运算单元后,我们将一定格式的指令及数据输入,即可得到运算结果。而当需要的运算种类越来越多、运算越来越复杂后,CPU设计人?#26412;?#23558;这些指令进行划分重构,组成一整套进?#24615;?#31639;的集合,这就是指令集


图片来自Unsplash

不过以上面向CPU指令集设计师及CPU微架构设计师的,CPU指令设计者将不同一些计算机操作设计成指令,然后微架构设计师通过这些指令的格式等进行微架构设计。而对于软件开发者,更多接触到的是软件层面的汇编语?#35029;?#36890;过汇编语言指令就可以让程序员控制计算机了。计算机软硬件架构是有层次的,随着高级语言的开发,GUI的出现,更多的人可以方便的使用计算机。虽然编程语言越来越“高级?#20445;?#36719;件越来越华丽,但是其依然需要通过CPU中的海量晶体管进?#24615;?#31639;,调用指令集。

从英特尔开发出8086处理器开始,x86指令集就开始形成了,此后英特尔推出了80286、80386等处理器,虽然1985年时英特尔的处理器发展到32位的80386,但它依旧采用的是x86架构,而?#20197;?#27492;后很长时间内,80386采用的指令集、编程模?#22270;?#20108;进制格式仍然是所有32位x86处理器需要遵守的,而这也被称为x86或IA-32,统一的指令集、编程模?#22270;?#20108;进制也让采用x86指令集架构的处理器成为PC市场的霸主。

随后如英特尔等厂?#28120;?#27492;后的产品上添加了一些指令,如浮点指令等,这也?#20040;?#29702;器满足了人们?#32422;?#31639;机更高性能的需求。在新世纪到来后,又发展出了最新的x86-64指令集,也提供了?#28304;?#32479;的32位x86指令集的兼容,同时如Windows 10、大部分基于Linux内核操作系统都还提供32位兼容。


AMD推出的x86-64规范,图片来自Wikipedia

不过如x86指令集不能满足我们在计算机中的所有工作,所以在基础的x86指令集上,CPU指令集设计人员又向x86指令集中添加了一些有用的指令集,以方便软件开发人员进行开发。不过随着计算机多媒体时代的来临,导致用户?#32422;?#31639;机性能的要求越来越高,所以为了应对并行计算等需求,处理器设计设计生产厂商开始在x86指令集之外开发扩展指令集(Extended Instruction Sets),这些指令集通常能有强大的并行计算能力,可?#28304;?#24133;加速部分运算的速度,这样就可以进行多媒体处理等需要大量运算的任务。从1998年AMD的K6-2架构发布后,3D!Now、MMX等扩展指令集?#26469;?#34987;添加进入CPU中,使得CPU的通用并行计算能力越来?#35282;俊?#21040;现在英特尔及AMD已经开发出了非常多的扩展指令集,如SSE(Streaming SIMD Extensions,流式单指令多数据流扩展)、VT-x(Intel Vertualization)、AES-IN(高?#37117;用?#26631;准指令集)、AVX(Advanced Vector Extensions,高级矢量扩展),而这些指令集不仅影响了程序员,通过使用这些扩展指令集编写程序,可以加速运算,为我们带来更可靠、强大、实用的软件,而且对普通用户,我们也能通过这些软件应用体验到扩展指令集带来的优势,那么到具体应用中,我们在日常中使用了哪些指令集呢?


Intel Core i9-9900K


AMD Ryzen 7 2700X

第一大类:基础运算类x86、x86-64及EM64T等

在Intel推出8086处理器之后,x86指令集(x86 Instruction Sets)就形成了。在8086/8088处理器中采用最初的x86指令集中主要为数据操作,如ADD(数据加)、DIV(数据除)等数据运算操作,AND(逻辑加)、OR(逻辑或)等逻辑操作,MOV(CPU内或CPU与内部存储器之间传送数据)、JMP(跳转)等指令,这些基础指令组成了最初的x86指令集。

而从此后,Intel等厂商也在扩展X86指令集,添加了很多有关?#39068;弧?#29366;态的指令。随着这些指令的增加,让能够?#20040;?#29702;器快速执行一些了基础运算、逻辑判断。

在2001年后,AMD推出了x86-64指令集,?#28304;藊86架构处理器进入了64位时代。而后来Intel跟进推出了EM64T指令集。将所有通用寄存器从32位扩充至64位,而且虚拟内存地址空间和物理地址空间都大幅扩大,这些都有助于处理器运行效率的提高。


首款支持x86-64指令集的处理器,AMD Opteron(皓龙),图片来自Wikipedia

那么x86?#32422;?#20043;后推出的x86-64?#32422;癊M64T主要是针?#32422;?#31639;机运行的基础操作,如数据运算、数据操作?#32422;?#36923;辑判断。我们在运行基础的数据运算、数据操作及逻辑判断时都用的是处理器的x86指令集、它为计算机的提供基础的基础运算能力,逻辑判断能力。但随着处理器并行化计算的趋势,接下来这些指令集是负责目前目前处理器中更多的计算任务。

第二大类:SIMD指令集,有SSE系列,AVX系列

随着?#28304;?#29702;器数据处理能力需求的增强,面对更大数据量、更复杂的计算,单纯使用x86指令集已不足?#26376;?#36275;需求,所以AMD K6-2处理器推出后,SIMD多媒体指令集的出现?#20040;?#29702;器的浮点矢量运算、并行处理能力大幅增强。

最初的3D!Now、MMX指令集推出的时候,计算机的3D图形能力不强,所以那时MMX等指令集会对3D、2D计算进行加速。而后来推出的SSE系列指令集?#32422;癆VX指令集的出现将CPU处理数据的宽度从最初的64位到最新的AVX512系列指令集的512位,都是为了增强处理器的并行计算能力的。而以2010年为节点,之前的就是SSE系列,之后就是AVX系?#23567;?/p>


图片来自Wikichip

虽然如3D运算是由GPU计算,不过由于对细碎数据并行计算能力较强,编程模型更加易用,所以到现在?#20040;?#20381;旧非常广泛。而随着数据宽度提升,如目前火热的人工智能应用都可以进行加速。

之所以将这类SSE、AVX放在一起,是因为虽然它们之间有很多区别,但它们都是SIMD(单指令多数据流)指令集,所以AVX可以看做是SSE指令集的?#26377;?/p>

多媒体应用

虽然现在更多的如2D、3D计算是在GPU中处理的,但是依旧有多媒体应用使?#20040;?#29702;器中的SSE等指令集进行计算。虽然如视频编解码都已经有专门的处理单元了,但是还是有视频编解码应用采用SSE、AVX指令集。如著名的音视频处理软件FFmpeg就有使用SSE指令集进行音视频处理的编解码器。而x264、x265视频编码器?#37096;?#20197;使用AVX2甚至是AVX-512来加速编码。


视频压缩软件使用了SSE2指令集

而随着技术的发展,我们浏览的网页也越来越华丽,图片,视频等为我们展现了丰富的内容,而这些内容也需要通过更多的计算性能,通过SSE等指令集渲染网页中的图像等内容。如我们常用的Chrome浏览器,在2014年后,就只支持含有SSE2指令集的处理器(国内很多浏览器也是使用的Chromium内核)。而FireFox(火狐)浏览器也在49版本后只支持有SSE2指令集的处理器。


Chrome浏览器现在的版本已经刷到75

加解密运算

虽然SSE等SIMD指令集最初是为了加速3D等多媒体任务的,但是再后来其对很多大量并行数据超强的处理能力及更宽的数据宽?#28909;?#20854;可以执行更多的任务。随着数据信息安全越来越重要,越来越多的加解密应用使用了SSE、AVX指令集进行编解码操作。如我们常见的OpenSSL等就采用了AVX及AVX2指令集优化?#29992;?#21151;能。而Ubuntu等操作系统采用的Linux内核中采用了AVX或AVX2指令集,作为AES-GCM等多种?#29992;?#31639;法的优化实现。通过更高指令集的实现,可以让加解密运算更加迅速,而且相对于?#25042;?#20986;来的AES-IN指令集,其更具有通用性,软件开发者不需要要对指令集做专门的适配。

数据序列化

随着移动互联网的发展,移动设备也在产生着非常多的数据。而这些数据是有一定格式的,如常见的XML(可扩展标记语?#35029;SON(一?#26234;?#37327;级数据交换语?#35029;?#32780;无论是移动设备,还是接收数据的服务器,都是需要解析这些数据。而由于格式固定,所以可以海量的数据可以通过并行化的方式进行解析,让程序获得需要的数据。


JSON格式的数据

现在已经有一些采用SSE指令集的数据解析程序,这些程序代码被一些应用使用,非常快速高效的解析获取的数据,并将数据呈?#25351;?#20351;用者。

游戏

在游戏中现在也大量的使用SSE、AVX指令集。由于游戏画面需要大量的坐标等数据,而坐标等向量数据使用SSE指令集正是处理这类数据最好的方式。通常程序并行化编程可以加速矩阵乘法等游戏中常用的运算,所以一些游戏开发者会开发专门的数学库,以加速这类运算。


CryEngine开发软件界面,图片来自CryEngine

而除了对游戏进行优化外,部分开发商?#22815;?#20351;用Denuvo、VMPortect等进行?#29992;埽珼enuvo、VMPortect需要处理器支持如AVX指令集等进行?#29992;堋?#27492;前育碧推出的《刺客信条:奥德赛》最初的版本需要支持AVX指令集的处理器才可以运行,而随后由于玩家向育碧?#20174;常?#32946;碧修复了这个“问题”。此后也有很多游戏采用了VMProtect,所以如果玩家需要运行未来的游戏,需要注意一下处理器支持的指令集了。Intel的初代酷睿处理器(如Core i7-920)支持SSE4.2指令集,而到了第二代酷睿处理器(如Core i7-2600K)开始正式支持AVX指令集,所以玩家们不仅因为性能,还应?#27599;?#34385;未来游戏需要支持的指令集(支持正版)。


?#31508;?a href="https://forums.ubi.com/showthread.php/1941337-Update-on-AVX-Support" target="_blank">育碧的回应

科学计算&人工智能

虽然科学计算对于大部分用户来?#24403;?#36739;久远,但是这也是计算机最重要的应用之一。科学计算通常需要强大的并行计算能力,而且这类应用也是浮点密集型应用,所以SSE、AVX指令集可以起到加速这类应用的目的。

而目前大热的人工智能,当采用CPU进行机器学习运算时,如AVX这类并行化的指令集?#37096;?#20197;加速学习速?#21462;?#33879;名的机器学习框架TensorFlow从1.6版开始要求处理器至少支持AVX指令集。而Intel在最新的Ice Lake-U处理器中内置的AVX-512指令集甚至对机器学习进行了优化。

检测处理性能,跑分

由于这些指令集构成的具体处理器架构实现,同时采用这些指令集的软件在运行时会让CPU高负荷运行,所以用专门编写运行这些指令集的软件,然后将运行时间等进行量化,可以测?#28304;?#29702;器性能。


AIDA64软件

我们常用的测试有很多,如AIDA64、CINEBench等都会使用到这些指令集,而最终测试得到的分数就可以作为评判处理器性能的标准。

以上的应用都是我们都会用到的,而很多编程语言的代码库中都会有一些支持SSE、AVX指令集的接口,而这些指令集的通用性很强,所以未来会有更多的应用采用这些指令集进行编程,同时我们?#19981;?#20307;会到这些指令集的优势。

第三大类:虚拟化指令集Intel,虚拟机应用

虚拟化技术不是一项新技术,在20世纪60年代末,IBM公司就通过在硬件之上添加一套软件抽象层,将计算机硬件虚拟?#25351;?#25104;一个或多个虚拟机(Virtual Machine)。而这?#21482;?#20998;计算机资源的技术就是虚拟化技术。

目前大多数x86指令集架构的处理器才用的是硬件抽象级别虚拟化技术,通过这种有限的硬件虚拟化技术,虚拟机软件隐藏不同厂商的处理器、存储器等特征,为虚拟机提供抽象且统一的虚拟平台。

英特尔及AMD都在2006年后在处理器中提供了虚拟化指令集,Intel为VT-x,AMD为AMD-V,而随后两家又推出了可以支?#31181;?#25509;存储器访问(Direct Memory Access,DMA)?#32422;癙CIe设备直接访问的VT-d及AMD-Vi技术。现在这些虚拟化指令集能为目前的x86指令集架构的处理器提供运行高效的虚拟机。

虽然我们都听说过虚拟机,但实际上我们?#19981;?#20351;用到虚拟化技术。我们移动设备中的一些应用使用的服务器很多都是通过处理器虚拟化技术划分出的虚拟机,软件开发商通过购买?#21697;?#21153;,然后再这些虚拟机?#24615;?#34892;?#32422;?#30340;程序,为用户提供服务。


阿里云?#21697;?#21153;器ECS入门级


开源的Virtualbox

而有时候我们?#32422;?#20250;通过开源的Virtualbox、需要购买的VMware Workstation?#28909;?#20214;去安装?#32422;?#30340;虚拟机,然后在虚拟机里安装应用,与本机进行隔离。如信息安全研究人员会通过虚拟机来进行安全研究。

第四大类:安全类指令集,如加解密AES-IN指令集

现在信息安全问题越发突出,而对数据进行?#29992;?#20063;是很多用户进行的操作。但是通过基础指令进行加解密速度不甚理想,而虽然现在已经可以通过AES等指令集进行并行化?#29992;埽?#20294;是人类在追求速度上是无止境的。所以Intel及AMD都在处理器中添加了针对加解密的指令集,Intel处理器内有AES(先进?#29992;?#26631;准)指令集,而AMD这边出了AES指令集外,还有SHA(安全散?#20852;?#27861;)指令集。

这些指令集都是为数据进行加解密操作的,其中AES指令集是为了加速目前非常流行的AES(如NAS产品会称支持AES?#29992;埽?#21152;解密算法的。而AMD支持的SHA指令集支持SHA加解密算法。这些指令集的加入甚至可以让加解密操作实时执行,在保证用户数据安全的同时,不会影响实际使用。

第五大类:多线程应用,TSX事务同步扩展指令集

TSX(事务同步扩展)作为近几年新增的指令集,是一个小?#35813;?#19968;样的存在。从Intel的Haswell架构开始在第四代酷睿处理器开始提供。TSX指令集可以实现事务代码的预测执行,硬件监测多个线程以进行冲突的内存访问,加速多线程软件的执?#23567;?/p>

然而?#27492;?#32654;好的?#34385;?#21487;能存在风险,在2016年,信息安全研究人员发现了利用侧信道攻击发现的TSX漏?#30784;?#32780;在随后的处理器中Intel修复了这个漏?#30784;?/p>

总结

当处理器指令集设计者不再将扩?#22815;?#26412;的x86指令集后,添加扩展指令集成为了x86处理器设计厂商的主流。而这些设计者?#24067;?#20855;?#37117;?#20174;现在来看,目前我们常见CPU中的指令集都有具体使用,而随着编译器?#28909;?#20214;开发工具的添加这些指令集的支持,相信会?#24615;?#26469;越多的程序开始支持,我们使用的软件?#19981;?#20197;越来越高的效?#35797;誦小?/p>

?
  • Voivod高中生 4天之前

    讲 CPU 的文章图片用的是 php & css

    支持(0)  |   反对(0)  |   举报  |   回复

    15#

  • 拾人牙慧研究生 06-15 22:18

    yjhercules 终极杀人王 :

    说好好的 产品,没有总个人攻击
    看来 理想的国家 还是有必要建立的
    OK
    06-14 15:31 已有14次举报
  • 支持(0)  |   反对(5)  |   举报  |   回复
  • 游?#20572;?/h3>你几时“好好讨论产品”了?你几时不是歪理邪说地?#36816;?#33258;话?你几?#24065;?#20026;?#32422;?#19981;是神憎鬼厌而是万人 ...
    06-14 16:19
  • 支持(10)  |   反对(0)  |   举报  |   回复
  • yjhercules 终极杀人王 :

    已经看透了amd
    没有外力不会起什么 大波波
    所以等3000出来 ps cad 3dmax SOLIDWORK的 对比测试和9900再说吧
    就是和INTEL平了也没有多 么 巨大胜利
    毕竟 缓存和7nm制?#28120;?#37027;
    赢了人家14nm INTEL是必然
    赢不也 也没有什么 这就是工艺差距和指令集差距
    想办法就是了
    06-14 18:00 已有9次举报
  • 支持(1)  |   反对(2)  |   举报  |   回复
  • 赢了14nm也并不是台积电的胜利或者AMD没本事却占便宜。只能说这?#21069;?#23548;体设计与晶圆代工分离的胜利,2019年芯片已经不能一家包揽全部过程了。就如同当今民航,航空发动机与飞机整机制造企业分离的战略取得了胜利,没有任何一家飞机企业想要?#32422;?#21046;造发动机。时代变了啊

    支持(3)  |   反对(0)  |   举报  |   回复

    14#

  • yjhercules终极杀人王 06-14 18:00

    yjhercules 终极杀人王 :

    说好好的 产品,没有总个人攻击
    看来 理想的国家 还是有必要建立的
    OK
    06-14 15:31 已有14次举报
  • 支持(0)  |   反对(5)  |   举报  |   回复
  • 游?#20572;?/h3>你几时“好好讨论产品”了?你几时不是歪理邪说地?#36816;?#33258;话?你几?#24065;?#20026;?#32422;?#19981;是神憎鬼厌而是万人 ...
    06-14 16:19
  • 支持(10)  |   反对(0)  |   举报  |   回复
  • 已经看透了amd
    没有外力不会起什么 大波波
    所以等3000出来 ps cad 3dmax SOLIDWORK的 对比测试和9900再说吧
    就是和INTEL平了也没有多 么 巨大胜利
    毕竟 缓存和7nm制?#28120;?#37027;
    赢了人家14nm INTEL是必然
    赢不也 也没有什么 这就是工艺差距和指令集差距
    想办法就是了

    已有9次举报

    支持(1)  |   反对(2)  |   举报  |   回复

    13#

  • 游客  06-14 16:19

    yjhercules 终极杀人王 :

    说好好的 产品,没有总个人攻击
    看来 理想的国家 还是有必要建立的
    OK
    06-14 15:31 已有14次举报
  • 支持(0)  |   反对(5)  |   举报  |   回复
  • 你几时“好好讨论产品”了?你几时不是歪理邪说地?#36816;?#33258;话?你几?#24065;?#20026;?#32422;?#19981;是神憎鬼厌而是万人 ...

    支持(10)  |   反对(0)  |   举报  |   回复

    12#

  • yjhercules终极杀人王 06-14 15:31

    说好好的 产品,没有总个人攻击
    看来 理想的国家 还是有必要建立的
    OK

    已有14次举报

    支持(0)  |   反对(5)  |   举报  |   回复

    11#

  • cnbeta博士 06-14 13:36

    硬核内容,收藏一波

    支持(0)  |   反对(0)  |   举报  |   回复

    10#

  • hstjm2008博士 06-14 12:53

    yjhercules 终极杀人王 :

    简单的说是 专用指令集合
    软件 在运行中 使用这些指令集,
    会比 使用通用指令集 完成任务快
    当然 用哪个指令集 不影响最终结果
    只是跑得更快
    06-14 08:40 已有13次举报
  • 支持(1)  |   反对(10)  |   举报  |   回复
  • yjhercules 终极杀人王 :

    同样的做活 用amd的时间多于INTEL
    如做个网站 然后你 做个脚本 生成随机网站新闻
    然后再进行统计 最后 把 内容显示大浏览器中

    或者 弄个论坛,然后生成各?#24433;媯?#28982;后是规则下分

    要不用 access 数据库做个小记录表

    还可以域 布属 大量软件 给各用户电脑
    都能弄出区别

    当然省事的如U盘读写文件
    移动硬盘读写文件 这都能看出amd 和INTEL 区别
    06-14 10:07 已有10次举报
  • 支持(0)  |   反对(3)  |   举报  |   回复
  • shabi昨天就骂过你了 额二百五

    支持(3)  |   反对(0)  |   举报  |   回复

    9#

  • 游客  06-14 10:47

    yjhercules 终极杀人王 :

    简单的说是 专用指令集合
    软件 在运行中 使用这些指令集,
    会比 使用通用指令集 完成任务快
    当然 用哪个指令集 不影响最终结果
    只是跑得更快
    06-14 08:40 已有13次举报
  • 支持(1)  |   反对(10)  |   举报  |   回复
  • 游?#20572;?/h3>不影响最终结果,你怎么总说AMD不好用?
    06-14 09:02 已有1次举报
  • 支持(5)  |   反对(1)  |   举报  |   回复
  • ?#19968;?#27704;?#37117;?#24471; yjhercules 的这句话:“不影响最终结果”……

    支持(6)  |   反对(0)  |   举报  |   回复

    8#

  • yjhercules终极杀人王 06-14 10:07

    yjhercules 终极杀人王 :

    简单的说是 专用指令集合
    软件 在运行中 使用这些指令集,
    会比 使用通用指令集 完成任务快
    当然 用哪个指令集 不影响最终结果
    只是跑得更快
    06-14 08:40 已有13次举报
  • 支持(1)  |   反对(10)  |   举报  |   回复
  • 同样的做活 用amd的时间多于INTEL
    如做个网站 然后你 做个脚本 生成随机网站新闻
    然后再进行统计 最后 把 内容显示大浏览器中

    或者 弄个论坛,然后生成各?#24433;媯?#28982;后是规则下分

    要不用 access 数据库做个小记录表

    还可以域 布属 大量软件 给各用户电脑
    都能弄出区别

    当然省事的如U盘读写文件
    移动硬盘读写文件 这都能看出amd 和INTEL 区别

    已有10次举报

    支持(0)  |   反对(3)  |   举报  |   回复

    7#

  • Charlotte等待验证会员 06-14 09:31

    这回终于发了点牛逼的文章了,给你点个赞

    支持(3)  |   反对(0)  |   举报  |   回复

    6#

  • 游客  06-14 09:02

    yjhercules 终极杀人王 :

    简单的说是 专用指令集合
    软件 在运行中 使用这些指令集,
    会比 使用通用指令集 完成任务快
    当然 用哪个指令集 不影响最终结果
    只是跑得更快
    06-14 08:40 已有13次举报
  • 支持(1)  |   反对(10)  |   举报  |   回复
  • 不影响最终结果,你怎么总说AMD不好用?

    已有1次举报

    支持(5)  |   反对(1)  |   举报  |   回复

    5#

  • yjhercules终极杀人王 06-14 08:40

    简单的说是 专用指令集合
    软件 在运行中 使用这些指令集,
    会比 使用通用指令集 完成任务快
    当然 用哪个指令集 不影响最终结果
    只是跑得更快

    已有13次举报

    支持(1)  |   反对(10)  |   举报  |   回复

    4#

  • dingding2001博士 06-14 00:20

    硬核内容

    支持(2)  |   反对(0)  |   举报  |   回复

    3#

  • QQ23870862终极杀人王 06-13 23:16

    一般人看不明白

    已有5次举报

    支持(0)  |   反对(0)  |   举报  |   回复

    2#

  • 游客  06-13 21:25

    这个不?#38376;?/h3>

    支持(6)  |   反对(0)  |   举报  |   回复

    1#

加载更多评论

我来评论
热门文章
1英特尔官方科普:4G+8G内存能否构成双通道?当然,而且频?#20160;?#21516;也是可以的
2AMD今年两年CPU线路图?#33322;?#24180;10月发第三代线程撕?#39068;擼?#26126;年8月锐龙4000
3华为折叠屏手机Mate X终于入网:预计售价万元起
4Google Pixel 4的大额头+浴霸设计很难爱,但它可能有Face ID
5NVIDIA静默修复Selfblow漏洞:可在Tegra芯片之上执行?#25105;?#24694;意代码
6微软再发力跨平台:Windows Defender将改名为Microsoft Defender
7RedMonk发布6月份编程语言榜单:基本稳定的局势中TypeScript继续快速上升
8Android的快速匹配功能加入数个新特性,你将拥有更好的?#22534;?#20307;验
9数毛更清晰:Redmi新手机将采用6400W传感器并已公?#20339;?#24352;
快三押大小单双技巧
2014中超 电子游戏议论文700字 双色球基本走势图删除 体彩20选5开奖结果走 舟山飞鱼基本走势图 特肖怎么买 e球彩总进球数模拟走势图及选号 明升娱乐城可靠吗 足球指数是什么原因 金牛网一尾中特 云南快乐时时彩今天 体彩顶呱刮兑奖网 上海快3开奖走势一定牛 竞彩篮球大小分加时赛算吗 东方6十开奖号码