Very Long Instruction Word

from: https://en.wikipedia.org/wiki/Very_long_instruction_word

The traditional means to improve performance in processors include dividing instructions into substeps so the instructions can be executed partly at the same time (termed pipelining), dispatching individual instructions to be executed independently, in different parts of the processor (superscalar architectures), and even executing instructions in an order different from the program (out-of-order execution). These methods all complicate hardware (larger circuits, higher cost and energy use) because the processor must make all of the decisions internally for these methods to work. In contrast, the VLIW method depends on the programs providing all the decisions regarding which instructions to execute simultaneously and how to resolve conflicts. As a practical matter, this means that the compiler (software used to create the final programs) becomes far more complex, but the hardware is simpler than in many other means of parallelism.

==> the compiler will take longer to develope, more error prone and specific to VLIW structures, which is the sacrifice for more efficient hardware structure.

In superscalar designs, the number of execution units is invisible to the instruction set. Each instruction encodes one operation only. For most superscalar designs, the instruction width is 32 bits or fewer.

In contrast, one VLIW instruction encodes multiple operations, at least one operation for each execution unit of a device. For example, if a VLIW device has five execution units, then a VLIW instruction for the device has five operation fields, each field specifying what operation should be done on that corresponding execution unit. To accommodate these operation fields, VLIW instructions are usually at least 64 bits wide, and far wider on some architectures.

For example, the following is an instruction for the Super Harvard Architecture Single-Chip Computer (SHARC). In one cycle, it does a floating-point multiply, a floating-point add, and two autoincrement loads. All of this fits in one 48-bit instruction:

f12 = f0 * f4, f8 = f8 + f12, f0 = dm(i0, m3), f4 = pm(i8, m9);

Since the earliest days of computer architecture,[1] some CPUs have added several arithmetic logic units (ALUs) to run in parallel. Superscalar CPUs use hardware to decide which operations can run in parallel at runtime, while VLIW CPUs use software (the compiler) to decide which operations can run in parallel in advance. Because the complexity of instruction scheduling is moved into the compiler, complexity of hardware can be reduced substantially.[clarification needed]

==> complexity at hardware level enables abstraction of hardware to the software and thus can greatly enhance compatiblity with multiple software environments/frameworks fostering a better application eco-system for the hardware.

A similar problem occurs when the result of a parallelizable instruction is used as input for a branch. Most modern CPUs guess which branch will be taken even before the calculation is complete, so that they can load the instructions for the branch, or (in some architectures) even start to compute them speculatively. If the CPU guesses wrong, all of these instructions and their context need to be flushed and the correct ones loaded, which takes time.

This has led to increasingly complex instruction-dispatch logic that attempts to guess correctly, and the simplicity of the original reduced instruction set computing (RISC) designs has been eroded. VLIW lacks this logic, and thus lacks its energy use, possible design defects, and other negative aspects.

In a VLIW, the compiler uses heuristics or profile information to guess the direction of a branch. This allows it to move and preschedule operations speculatively before the branch is taken, favoring the most likely path it expects through the branch. If the branch takes an unexpected way, the compiler has already generated compensating code to discard speculative results to preserve program semantics.

==> profiling is static, cheap and not necessarily yielding good results; with the application of JIT compiler, the prediction can be dynamic as hardware level preditions.

Vector processor (single instruction, multiple data (SIMD)) cores can be combined with the VLIW architecture such as in the Fujitsu FR-V microprocessor, further increasing throughput and speed.

other references

Very Long Instruction Word (VLIW) Architecture - GeeksforGeeks

Advantages :

  • Reduces hardware complexity.
  • Reduces power consumption because of reduction of hardware complexity.
  • Since compiler takes care of data dependency check, decoding, instruction issues, it becomes a lot simpler.
  • Increases potential clock rate.
  • Functional units are positioned corresponding to the instruction pocket by compiler.

Disadvantages :

  • Complex compilers are required which are hard to design.
  • Increased program code size.
  • Larger memory bandwidth and register-file bandwidth.
  • Unscheduled events, for example a cache miss could lead to a stall which will stall the entire processor.
  • In case of un-filled opcodes in a VLIW, there is waste of memory space and instruction bandwidth.

What is the VLIW Architecture?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
广州创亚企业管理顾问有限公司 ARM架构芯片在服务器端的发展前景 目 录 Contents 服务器的基本的概要 服务器成本构成简析 ARM芯片在服务器端的发展前景 服务器CPU国产化替代商业价值 创亚咨询 一、服务器的基本的概要 (一)定义 服务器(Server),也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处 理,因此一般来说服务器应具备承担服务并且保障服务的能力。通常分为文件服务器(能使用户在其它计 算机访问文件)、数据库服务器、应用程序服务器、WEB服务器等。 服务器的构成包括处理器、硬盘、内存、系统总线等,相比通用的计算机架构,在处理能力、稳定性、 可靠性、安全性、可扩展性、可管理性等方面要求更高。 创亚咨询 一、服务器的基本的概要 (二)分类 按照体系架构来区分,服务器主要分为两类: 1)非x86服务器 服务器(9)非x86服务器:包括大型机、小型机和UNIX服务器,它们是使用RISC(精简指令集)或 EPIC(并行指令代码)处理器,并且主要采用UNIX和其它专用操作系统的服务器,精简指令集处理器主要 有IBM公司的POWER和PowerPC处理器,SUN与富士通公司合作研发的SPARC处理器、EPIC处理器主要是 Intel研发的安腾处理器等。这种服务器价格昂贵,体系封闭,但是稳定性好,性能强,主要用在金融、 电信等大型企业的核心系统中。 2)x86服务器 x86服务器:又称CISC(复杂指令集)架构服务器,即通常所讲的PC服务器,它是基于PC机体系结构, 使用Intel或其它兼容x86指令集的处理器芯片和Windows操作系统的服务器。价格便宜、兼容性好、稳定 性较差、安全性不算太高,主要用在中小企业和非关键业务中。 创亚咨询 一、服务器的基本的概要 (三)硬件 服务器作为硬件来说,通常是指那些具有较高计算能力,能够提供给多个用户使用的计算机。服务器 与PC机的不同点很多,例如PC机在一个时刻通常只为一个用户服务。服务器与主机不同,主机是通过终 端给用户使用的,服务器是通过网络给客户端用户使用的。和普通的PC相比, 服务器需要连续的工作在 7X24小时环境。这就意味着服务器需要等多的稳定性技术RAS,比如支持使用ECC内存。 根据不同的计算能力,服务器又分为工作组级服务器,部门级服务器和企业级服务器。服务器操作系 统是指运行在服务器硬件上的操作系统。服务器操作系统需要管理和充分利用服务器硬件的计算能力并提 供给服务器硬件上的软件使用。 创亚咨询 一、服务器的基本的概要 1、结构 服务器系统的硬件构成与我们平常所接触的电脑有众多的相似之处,主要的硬件构成仍然包含如下几 个主要部分:中央处理器、内存、芯片组、I/O总线、I/O设备、电源、机箱和相关软件。这也成了我们选 购一台服务器时所主要关注的指标。 整个服务器系统就像一个人,处理器就是服务器的大脑,而各种总线就像是分布于全身肌肉中的神经, 芯片组就像是骨架,而I/O设备就像是通过神经系统支配的人的手、眼睛、耳朵和嘴;而电源系统就像是血 液循环系统,它将能量输送到身体的所有地方。 创亚咨询 一、服务器的基本的概要 在信息系统中,服务器主要应用于数据库和Web服务,而PC主要应用于桌面计算和网络终端,设计根 本出发点的差异决定了服务器应该具备比PC更可靠的持续运行能力、更强大的存储能力和网络通信能力、 更快捷的故障恢复功能和更广阔的扩展空间,同时,对数据相当敏感的应用还要求服务器提供数据备份功 能。而PC机在设计上则更加重视人机接口的易用性、图像和3D处理能力及其他多媒体性能。 创亚咨询 一、服务器的基本的概要 2、CPU 服务器的CPU仍按CPU的指令系统来区分,通常分为CISC型CPU和RISC型CPU两类,后来又出现了一种 64位的VLIM(Very Long Instruction Word超长指令集架构)指令系统的CPU。 CISC型CPU: CISC是英文"Complex Instruction Set Computer"的缩写,中文意思是"复杂指令集",它是指 英特尔生产的x86(intel CPU的一种命名规范)系列CPU及其兼容CPU(其他厂商如AMD,VIA等生产的CPU), 它基于PC机(个人电脑)体系结构。这种CPU一般都是32位的结构,所以我们也把它称为IA-32 CPU。(IA: Intel Architecture,Intel架构)。CISC型CPU主要有intel的服务器CPU和AMD的服务器CPU两类。 创亚咨询 一、服务器的基本的概要 RISC型CPU: RISC是英文"Reduced Instruction Set Computer "的缩写,中文意思是"精简指令集"。 它是在CISC(Complex In
服务器系统概述(全文) 胡经国 本文作者的话 本文是根据有关文献和资料编写的《漫话云计算》系列文稿之一。现作为云计算学习笔 录,奉献给云计算业外读者,作为进一步学习和研究的参考。希望能够得到大家的指教 和喜欢! 下面是正文 一、服务器的概念 服务器(Server),又叫做伺服器,是提供计算服务的设备。由于服务器需要响应服 务请求,并进行处理,因而一般来说服务器应具备承担服务和保障服务的能力。 服务器的构成,包括:处理器、硬盘、内存、系统总线等,和通用的计算机架构类似 。但是,由于服务器需要提供高可靠性的服务,因而在处理能力、稳定性、可靠性、安 全性、可扩展性、可管理性等方面要求都比较高,其CPU、芯片组、内存、磁盘系统、网 络等硬件与普通PC有所不同。 其中,芯片组是一组共同工作的集成电路(即:芯片)。它负责将电脑的核心——微处 理器和机器的其他部分相连接,是决定主板级别的重要部件。以往,芯片组由多颗芯片 组成,慢慢的简化为两颗芯片。在计算机领域,"芯片组"术语通常是特指计算机主板或 扩展卡上的芯片。 在网络环境下,根据服务器所提供的服务类型不同,分为:文件服务器,数据库服务 器,应用程序服务器,Web服务器等。 二、服务器系统结构 1、服务器系统结构概述 服务器作为硬件来说,通常是指那些具有较高计算能力、能够提供给多个用户使用的 计算机。服务器与PC机的不同点很多,例如PC机在一个时刻通常只为一个用户服务。服 务器与主机不同,主机是通过终端给用户使用的;而服务器则是通过网络给客户端用户 使用的。 与普通的PC相比,服务器需要连续工作在7×24小时环境。这就意味着,服务器需要很 多的稳定性技术RAS,比如支持使用ECC内存。 根据不同的计算能力,服务器又分为工作组级服务器,部门级服务器和企业级服务器 。 服务器操作系统,是指运行在服务器硬件上的操作系统。服务器操作系统需要管理和 充分利用服务器硬件的计算能力,并提供给服务器硬件上的软件使用。 链接:RAS RAS(Reliability,Availability and Serviceability,可靠性、可用性和可服务性)是电脑硬件工程上的术语。最初来自IB M公司为其大型主机所做的宣传广告,强调大型主机系统的坚韧强固:稳定性(或称:坚 稳性)、可用性(或称:可靠性)、可服务性。如今这个概念已广为人知,并被缩写、 简称为RAS。 链接:ECC ECC(Error Checking and Correcting,错误检查和纠正),是一种能够实现"错误 检查和纠正"的技术,ECC内存就是应用了这种技术的内存。一般多应用在服务器及图形 工作站上。这将使整个电脑系统在工作时更趋于安全稳定。 2、服务器系统硬件构成 服务器系统的硬件构成,与我们平常所接触的电脑有众多的相似之处。主要的硬件构 成仍然包括如下几个主要部分:中央处理器(Central Processing Unit,CPU)、内存、芯片组、I/O总线、I/O设备、电源、机箱和相关软件。这也是选购 一台服务器,主要关注的指标。 整个服务器系统就像一个人。中央处理器就是服务器的大脑;而各种总线就像是分布 于全身肌肉中的神经;芯片组就像是骨架;而I/O设备就像是通过神经系统支配的人的手 、眼睛、耳朵和嘴;而电源系统就像是血液循环系统,它将能量输送到身体的所有地方 。 在信息系统中,服务器主要应用于数据库和Web服务;而PC主要应用于桌面计算和网 络终端。设计根本出发点的差异,决定了服务器应该具备比PC更可靠的持续运行能力、 更强大的存储能力和网络通信能力、更快捷的故障恢复功能和更广阔的扩展空间;同时 ,对数据相当敏感的应用,还要求服务器提供数据备份功能。而PC机在设计上,则更加 重视人机接口的易用性、图像和3D处理能力及其他多媒体性能。 3、CPU 中央服务器CPU仍按其指令系统来区分,通常分为:CISC型CPU和RISC型CPU两类;后 来,又出现了一种64位的VLIM(Very Long Instruction Word,超长指令集)系统的CPU。 、CISC型CPU CISC(Complex Instruction Set Computer,复杂指令集计算机),是指英特尔生产的x86(intel CPU的一种命名规范)系列CPU及其兼容CPU(其他厂商如AMD,VIA等生产的CPU)。它基 于PC机(个人电脑)体系结构。这种CPU一般都是32位的结构,所以我们也把它称为IA- 32 CPU(IA:Intel Architecture,Intel架构)。CISC型CPU主要有intel的服务器CPU和AMD的服务器CPU两 类。 、RISC型CPU RISC(Reduced Instruction Set Computer,
服务器分类 1.按应用层次划分 (1)入门级服务器 入门级服务器是最基础的一类服务器,也是最低档的服务器。这类服务器的配置与一般的PC很相似。入门级服务器所连的终端通常为20台左右。右图为曙光天阔I200-H入门级服务器 。 。 CPU Intel 3000/3200系列处理器 最大内存容量 8GB 支持硬盘数 3×SATA或3×SCSI 服务器技术与应用全文共27页,当前为第1页。 (2)工作组服务器 工作组服务器较入门级服务器来说性能有所提高,功能有所增强,有一定的可扩展性,但容错和冗余性能仍不完善。工作组服务器所连的终端通常为50台左右。右图为曙光天阔I440-F工作组级服务器: 系统带宽 21GB/s 最大内存容量 16GB 支持硬盘数 8×SATA或3×SCSI CPU Intel 5000系列处理器 服务器技术与应用全文共27页,当前为第2页。 (3)部门级服务器 部门级服务器是属于中档服务器之列,可连接100个左右的计算机用户,适用于对处理速度和系统可靠性高一些的中小型企业网络,右图为曙光天阔 A650(r)-FY部门级服务器: 系统带宽 21GB/s 最大内存容量 16GB 支持硬盘数 6×SATA或8×SAS CPU AMD 2000系列双核/四核皓龙处理器 服务器技术与应用全文共27页,当前为第3页。 冗余技术 电源,风扇冗余 最大内存容量 256GB 支持硬盘数 6×SATA或8×SAS 热插拔技术 电源,风扇,pcI,内存热插拔 CPU 4×intel 安腾2双核处理器系列双核/四核皓龙处理器 (4)企业级服务器 企业级服务器属于高档服务器之列,适合运行在联网计算机在数百台以上、需要处理大量数据、高处理速度和对可靠性要求和数据安全要求极高的金融、证券、交通、邮电、通信或大型企业。 右图为曙光天阔I940r-F企业级服务器: 服务器技术与应用全文共27页,当前为第4页。 2.按处理器的指令执行方式划分 (1)CISC(Complex Instruction Set Computer)架构服务器 (2)RISC(Reduced Instruction Set Computing)架构服务器 (3)VLIW(Very Long Instruction Word架构服务器 3.按用途划分 (1)通用型服务器 (2)专用型服务器 服务器技术与应用全文共27页,当前为第5页。 服务器的关键特性 服务器的主要性能特点包括:Scalability(可扩展性),Usability(可用性),Managbility(可管理性)和Availability(实用性),简称SUMA。 1.可扩展性:是指服务器的硬件配置,可以在原有的基础上很方便地根据需要来扩展。 2.可用性:是指服务器必须具有高的可靠性和稳定性,尽量少出现停机待修现象。 3.可管理性:是指服务器必须具备一定的自动报警功能,并配有相应的冗余、备份、在线诊断和恢复系统等功能,以备出现故障时及时恢复服务器的运作。 4.实用性:是指服务器必须具备高的运算处理能力和处理效率,以满足海量数据处理和密集客户请求响应。 服务器技术与应用全文共27页,当前为第6页。 服务器系统主要技术 多处理器技术与并行技术 1.SMP多处理器技术 对称多处理(SMP)是指在一个计算机上汇集了一组处理器(多CPU),所有CPU地位都是对等的,它们之间共享内存子系统以及总线结构。虽然同时使用多个CPU,但是从管理的角度来看,它们的表现就像一台单机一样。 2.MPP多处理器技术 MPP多处理器技术使用分布式存储器模式,如集群模式等,将更多的处理器纳入一个系统。一个分布式存储器模式具有多个节点,每个节点都有自己的存储器,可以配置为SMP,也可以配置为非SMP。 3.NUMA多处理器技术 MPP多处理器技术也使用分布式存储器模式,但与群集不同的是,所有节点中的处理器都可以访问全部的系统物理存储器。然而,每个处理器访问本节点内的存储器所需要的时间可能比访问某些远程节点内的存储器所花的时间要少得多。 服务器技术与应用全文共27页,当前为第7页。 高性能存储技术 1.SCSI小型机系统接口 SCSI总线是一种小型计算机系统接口,经过多年的改进已经成为服务器I/O系统最主要的标准,几乎所有服务器和外设制造商都在开发与SCSI接口连接的相关设备。SCSI总线支持数据的快速传输,目前主要采用的是80MBps和160MBps传输速率的Ultra2和Ultra3标准。当前,SCSI总线传输速率达到320MBps(Ultra4)。 2.RAID独立磁盘冗余阵列 磁盘阵列可以分为软阵列和硬阵列两种。软阵列就是通过软件程序来完成,要由计算机的处理器提供运算能力,只能提供最基本的RAID容错功能。硬阵列是由独立操作的硬件(阵

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值