处理器|时代的眼泪:繁华落尽的SPARC处理器( 三 )
SPARC 历代指令集版本文件封面那句大大的「OneArchitecture……Multiple Innovative Implementations」(统一的指令集架构 , 多种创新的微架构实作) , 就是最佳写照 , 只是傻傻分不清楚的人还是继续看不懂 。
源自「寄存器窗口」的可延展性
SPARC 指令集里那个「可扩展」(Scalable) , 起因于独特的「寄存器窗口」(Register Window) , 亦可见于Berkeley RISC、AMD Am29000、英特尔i960 与Itanium , 即使名称可能有点不同 。
当处理器碰到中断(如外部I/O 呼叫)、例外(像算术溢位)、进程切换 , 须将当前的执行状态 , 包含所有可存取的寄存器 , 都以事先定义好的数据结构回存到存储器 , 如x86 指令集的TSS(TaskStatus Segment) , 当恢复先前状态 , 再从存储器载回处理器 。
文章图片
因近代程序架构都高度模组化 , 不同副程序间的呼叫动作(SubroutineCall) , 也会造成频繁的上下文切换(Context Switch) , 增加寄存器和存储器间的数据传输量 。 过于庞大的「可见」寄存器数量 , 也会增加处理器的电路复杂度与上下文切换的负担 , 并危害到提升处理器运行时钟的延展性 。
那该如何降低上下文切换的负担 , 减少多余的内容值交换?以「空间换取时间」的Register Window 为此而生 。 ARM 指令集的Banked Register 也是类似方法 。 英特尔Itanium 处理器的IA-64 指令集也具备相同的机制 , 但命名为Register Stack , 看似比较贴切 。
文章图片
Register Window 藉由「重叠」不同程序使用的寄存器 , 即可交换不同程序的数据 , 但「软件眼中随时可见」的寄存器数量仍为32 个 , 8 个全域(Global) , 剩下24个当作Register Window , 8 个输入(In)、8 个区域(Local)、8 个输出(Out) , 逻辑上可视为一个巨大堆叠 , Register Window 指标器(CWP)一次移动16 个寄存器的距离 , 前一个程序的输出变成下一个程序的输入 , 当程序切换时 , 无须将专属于特定程序的8 个区域寄存器搬到存储器 , 也减少了寄存器和存储器之间的数据搬移量 。
以下举一个3 个Register Window 案例 , 一看就懂 。
文章图片
因此SPARC 指令集兼容处理器的「实际」通用寄存器数量是可变的 , 从力求最低成本的嵌入式应用到重视多工效率的服务器 , 一般介于72~640 。 假如想要追求副程序互通有无的效率 , 也愿意付出较多硬件成本(像8 个Register Window 的UltraSPARC I , 144 个寄存器拥有多达7 个读取埠和3个写入埠) ,Register Window 数量就多多益善 , 但假若想要减少电路成本、又想缩短发生上下文切换的处理负担 , 那就少一点刚刚好 。 SPARC 名中的「可延展」之意即在此 , 和日后为人称道的「多处理器延展性」一点关系都没有 。
效能最好的SPARC 处理器并非出自Sun
由于本文主角是Sun , 后面将聚焦服务器与工作站处理器 。 但随着时间流逝 , 一般坊间评价「最好的SPARC 指令集兼容处理器」却不是来自「Sun 本家」 , 而是日本Fujitsu(与1990 年代的Ross和HAL) , 直到Oracle 摆明不玩、只剩下这间日本公司 , 别无分号为止 。
先从指令集版本的演进 , 用一个表格画出SPARC 发展史的大致轮廓 , 至于型号相同、制程不同的微缩版就在此不论(UltraSPARC 历代出现过大量的制程改进版本) 。 如前面所述 , Sun 让SPARC 指令集成为「充分开放的业界标准」 , 除了Fujitsu 为了高效能运算而自定义的HPC-ACE , 理论上所有SPARC 处理器 , 皆可兼容先前所有SPARC 指令集 。
文章图片
但在踏入主要SPARC 处理器历史前 , 笔者必须先理清Sun 和其他SPARC 处理器厂商的最大思想差异 , 这也是「软件色彩极度浓厚」的Sun , 与「高效能处理器传统路线」的Fujitsu最大的不同点 。
对于21 世纪初期略闻SPARC 处理器的读者 , 应经历过Sun 与Fujitsu 两家组成APL(AdvancedProduct Line)联盟的历史 。 Sun 的处理器日程表上演大风吹 , 取消双核心UltraSPARC II「Gemini」及UltraSPARC V「Millennium」 , 转战「超多简单核心、超级多线程、巨量存储器频宽、目标锁定网络应用」的Throughput Computing , Fujitsu SPARC64 继续专注「较少复杂核心、优秀单线程效能、大型主机等级可靠度、应对高效数据处理」 , 再彼此截长补短 , 采用对方的处理器推出服务器产品 。
文章图片
当时还被IBM 公开嘲讽APL 应改名为「Sujitsu」 , 这些年来 , IBM 对SPARC 阵营的嘴炮攻势 , 更是从来没有停过 。 反正客户永远不嫌多 , 能挖来一个算一个 。
推荐阅读
- 进行|“互联网时代+”背景下品牌童装折扣店的发展对策研究
- 马斯克|脑机交互跨时代突破!马斯克震撼发布脑机接口装置,未来要上传下载思想?
- 王毅|让“新冷战”落空 “后疫情时代”中欧关系再出发
- 陈伟豪|大钲资本陈伟豪:坚持核心价值判断是创投时代的核心关键词
- 第一弹|万茜李沁江疏影,全都红不了?
- 欧洲头条丨让“新冷战”落空 “后疫情时代”中欧关系再出发
- 崩溃|润娥首次纹身示人?网民崩溃难直视
- 城市群|华为加入长三角一体化建设,后疫情时代的智慧城市群将如何发展?
- 硬件|宁德时代上半年净利润下滑7.86% 市场份额已被LG化学超越
- Lenovo|联想Yoga 9i新机推广视频曝光 采用英特尔11代酷睿处理器
