俗语说的好:过犹不及。从一个极端激烈反动到另一的极点,不见得是最好的选择,时下存活在市场上的产品与技术,也往往不是看起来「最具进步色彩」的那个。DEC在研发Alpha指令集时,过度重视效能,将大量的工作和复杂度,从硬体「转嫁」到软体,也为此复出了不少代价。

硬科技:为何x86的虚拟化这么难搞(上)

硬科技:为何x86的虚拟化这么难搞(中)

硬科技:为何x86的虚拟化这么难搞(下)

先从中断 (Interrupt) 说起。在我们所熟知的「精确中断 (Precise Interrupt)」,若处理器发生中断,如外部I/O发出存取需求,将标定下一个要被执行指令的记忆体位址的程式计数器 (PC,Program Counter) 存入已知的位址,在此之前的所有指令都将被执行完毕,而在后面的指令都不可以被执行。换言之,处理器处于被「明确定义」的状态,中断不会影响程式执行的结果。

,

皇冠官方appwww.huangguan.us)是一个开放皇冠官方代理APP下载、皇冠官方会员APP下载、皇冠官方线路APP下载、皇冠官方登录APP下载的官方平台。皇冠体育官方APP上最新登录线路、新2皇冠官方网址更新最快。皇冠体育官方APP开放皇冠官方会员注册、皇冠官方代理开户等业务。

,

但Alpha浮点运算的中断却是「不精确」的,如发生中断,需要另外塞一个 TRAPB (Trap Barrier,设陷边界) 指令让处理器停摆,强制完成前面的指令,将控制单元的部份复杂度转移到软体,牺牲掉处理器的中断例外严谨度。如果少了这个TRAPB,浮点程式码的运算结果将无法完全符合IEEE754规范。

然后Alpha打从一开始就是货真价实的纯种64位元指令集架构,其原始设计者也很偏执的不想看到像8位元和16位元长度的小量资料存取,所以一次只能存取32位元或64位元,再用位元组处理指令去撷取所需要的那一小块,变相增加指令的数量与程式码的体积。背后付出的代价是:这提高了从其他32位元指令集架构移植到Alpha的困难度。后来DEC才在1995年10月的Alpha 21164A (EV56) 才补回六个可直接处理8位元和16位元的BWX (Byte-Word eXtension) 指令。

Alpha为了方便指令管线化,也不支援整数除法,32位元单精确度浮点数在暂存器内会被自动转换成64位元双倍精确度格式。到头来,一切都是为了效能而生。

笔者在上集说到DEC的VAX有「二十种」运算元定址模式,但Alpha就冲到极端的「一种」,只有暂存器加上位移值 (Register + Offset),根本精简过头了,这也会理所当然的「增肥」程式码需要的指令数量与体积。

拜指令编码预留了大量扩充空间,Alpha一开始就支援条件搬移 (Conditional Move,或称引述执行) 指令,将「分支相依性转化为资料相依性」。当可在分支发生之前,确认分支条件的结果,编译器即可使用引述码取代分支,来控制指令执行流程,可避开分支预测,利于指令管线化。

以一个简单的条件判断为例:

USDT官网接口声明:该文看法仅代表作者自己,与本平台无关。转载请注明:皇冠官方app(www.huangguan.us):硬科技:RISC诸神的黄昏系列 DEC的Alpha (中) #intel (172746)
发布评论

分享到:

trc20转换erc20(www.u2u.it):西方媒体开始编造阿富汗故事?事情没这么简单
1 条回复
  1. ug环球代理开户(www.ugbet.us)
    ug环球代理开户(www.ugbet.us)
    (2022-12-26 00:19:19) 1#

    线上博彩网址www.99cx.vip)是一个开放皇冠体育网址代理APP下载、皇冠体育网址会员APP下载、皇冠体育网址线路APP下载、皇冠体育网址登录APP下载的官方平台。线上博彩网址上线上博彩网址会员登录线路、线上博彩网址代理网址更新最快。线上博彩网址开放皇冠官方会员注册、皇冠官方代理开户等业务。
    大家好哦!

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。