从CISC到RISC-V:揭开指令集的面纱

news2025/2/22 2:54:05

对于大多数同学来说,计算机或智能手机的运行似乎就像魔法一样神奇。你可能知道它们内部都是一些复杂的电子组件,比如CPU、内存等等,但这些组件是如何协同工作,让我们可以在电脑上打字,或者在手机上看视频呢?实际上,这一切都归功于一种名为“指令集”的神秘语言。今天,我们就一起揭开这种神秘语言的面纱,感受一下它的魅力所在。

指令集是计算机硬件和软件之间交互的桥梁,它定义了计算机硬件可以执行的操作,比如各种逻辑判断、数学运算。常见的指令集包括CISC、RISC、RISC-V等,它们其实是计算机CPU的各种设计思路。今天,我就来向大家详细解释一下这些概念。

CISC

首先,我们来聊聊CISC(复杂指令集计算机),也就是复杂指令集计算机。如果我们把计算机比作一个工厂,那么CISC就是那种拥有各种复杂机器设备的大工厂,每一台设备都能完成特定的复杂工作。x86系列的处理器一般都归属到CISC的范畴。

CISC指令集的设计初衷是为了最大限度地提高硬件的性能。为了提高性能,很多功能都是通过硬件电路来完成,也就是通过硬件实现各类指令。

CISC指令集的特点是指令长短不一:因为那时的内存很小,我们需要最大限度的保存更多的指令,所以指令的长度是可变的:常用指令短,不常用和复杂指令长一些。这就好比我们的大工厂里有各种大小不同的机器设备。

然而,随着技术的发展,CISC开始面临一些挑战和问题:

  • 效率问题:CISC的指令集复杂,有些指令可能很少被使用,但是考虑到向前兼容性,厂商还是需要花费资源去实现和维护这些指令,这不仅浪费了宝贵的硅片空间,也使得处理器的设计更加复杂,降低CPU的性能和效率。这就好比我们大工厂里各种大小不同的机器设备需要各类不同的人才去维护、去协调生产计划。
  • 热量问题:因为CISC的指令集复杂,处理器需要更多的硬件资源去执行这些指令,这会增加处理器的能耗;产生大量的热量,也需要更好的散热设备来保证处理器的稳定运行。
  • 编译器优化问题:因为CISC的指令集复杂,编译器需要花费更多的时间和资源去优化代码,以提高程序的运行效率。
  • 可扩展性问题:随着技术的发展,新的功能需求可能需要添加新的指令,但是对于已经很大的CISC指令集来说,添加新的指令会更加复杂。

因此,许多现代处理器开始转向RISC(Reduced Instruction Set Computer,精简指令集计算机)设计,以提高效率、降低能耗,并提供更好的可扩展性。

RISC

然后,我们来看看RISC,也就是精简指令集计算机。在20世纪70年代末,RISC开始出现。

这是因为人们发现CPU大部分时间都在使用少数的简单指令。同时因为内存大了,软件层面可以更复杂些,硬件可以更简单些,从而可以从吞吐量上提升CPU性能。

RISC的指令简单、定长,通过编译器实现简单指令的组合,完成复杂功能。这就像是把大工厂变成了流水线生产,每个工人只做一件简单的事情,但是大家协作起来,整体的效率却很高。

现在移动端流行的 ARM(Advanced RISC Machines)就是RISC的一种,不过它也融合了部分长指令、乱序执行、多发射等技术,所以它并不是单纯的RISC。就像我们的流水线上,虽然大部分工人都在做简单的工作,但是也有一些工人在做复杂的工作,以保证整个生产线的高效运转。

目前除了ARM公司生产的芯片,苹果的M1芯片、华为的麒麟芯片、小米的澎湃芯片、飞腾桌面处理器等,使用的也都是ARM指令集,不过对于国产芯片来说,ARM最新版本V9的指令集架构授权可能是个问题。

随着时间的推移,Intel和AMD两大巨头在x86中也借鉴了RISC的优化思路,他们考虑到向前兼容性,推出了微指令架构。这种架构下,编译出的指令还是原来的指令,但是在指令译码后变为了RISC风格的定长短指令。为了降低指令译码器的译码时间,CPU将翻译出的微指令存放到L0缓存中。

RISC-V

最后,我们来说说RISC-V。它是开源的RISC,可以说是CPU界的Linux。因为它是开源的,所以任何人都可以自由地使用和修改它,这也让它在全球范围内得到了广泛的应用,当然也可以用来解决我国芯片技术被卡脖子的问题,有望在未来成为主流的处理器架构。

RISC-V的技术特点主要包括以下几点:

  • 开放和自由:RISC-V是开源的,任何人都可以自由地使用和修改,这极大地降低了开发成本。
  • 简单和高效:RISC-V采用了RISC的设计理念,指令集简单、精简,易于实现,能有效提高处理器的性能和效率。
  • 可扩展性:RISC-V具有很好的可扩展性,开发者可以根据需要,自由地添加自定义指令,以满足特定的应用需求。

RISC-V正在全球范围内得到越来越广泛的应用。许多知名的科技公司,如Google、阿里巴巴、华为、中科院计算所等,都在积极推进RISC-V的发展。比如:

  • 阿里巴巴旗下的平头哥半导体已经推出了多款基于RISC-V架构的芯片,包括玄铁系列处理器,这些芯片在物联网、人工智能等领域有着广泛的应用。
  • 中科院计算所在2023年6月发布了第二代开源高性能RISC-V处理器“香山”,性能超过ARM Cortex-A76,采用中芯国际 14nm 工艺制造,目标频率是 2GHz,SPECCPU 分值达到 10 分 / GHz,支持双通道 DDR 内存以及 PCIe、USB、HDMI 等更多功能,为国内的芯片产业提供了新的选择和发展方向。

此外,许多开源硬件项目,如Arduino、Raspberry Pi等,也在考虑采用RISC-V。

龙芯

除了以上三大指令集,我们必须还得谈一下国产的龙芯,目前很多信创的项目也都在使用龙芯处理器。

龙芯是我国自主研发的通用处理器的品牌,最初也是由中科院计算所设计。早期的龙芯处理器使用的是MIPS指令集(一种精简指令集),但由于版权问题,后来的龙芯处理器使用的都是自主设计的指令集,称为龙芯指令集。

龙芯处理器不依赖于任何外部技术,保证了其安全性和自主性。其采用自主LoongISA指令系统,兼容MIPS指令,通过超标量技术实现高性能,可以同时执行多条指令,大大提升处理器的运行速度。

2010年,龙芯中科技术有限公司成立,开始市场化运作,旨在将龙芯处理器的研发成果产业化。就现状而言,龙芯处理器已经在多个领域得到应用,其出货量不断增加,但生态可能是其发展的制约因素。

尽管如此,龙芯处理器仍在不断优化和升级,提高性能和兼容性。龙芯对常见的开发平台和语言都提供了良好的支持。具体来说,龙芯支持Linux操作系统,可以在该平台上进行软件开发和调试。同时,龙芯还支持多种编程语言,如C、C++、Java、.NET、Go等,这些语言都可以在龙芯平台上进行编程和开发。此外,龙芯还提供了丰富的开发工具和库,如GCC编译器、GDB调试器等,以方便开发者进行软件开发和调试。


通过了解这些指令集的特点和历史,我们可以得到一些启示,这或许对我们的芯片发展有所借鉴意义。

  • 首先是生态,CISC并没有在RISC出现后消亡,反而仍旧繁荣。这是因为x86架构出货很多,受到各种系统和应用软件的支持,也就是说生态做得好。
  • 其次是创新,ARM抢占了移动端市场,这是因为手机的出现带来了对原有架构的挑战和新的机会。ARM的低功耗设计很好地支持了便携设备,而且它的架构和指令集授权策略得到了移动设备厂商的支持。

总的来说,各种指令集都有它们各自的优点和特性,它们的出现也都是为了更好地服务于人类的计算需求。了解这些指令集的原理和特性,对于我们理解计算机的运行机制也特别有意义。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1392003.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SSM的在线宠物商城设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue、HTML 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是…

Tide Quencher 7.1WS azide,TQ7.1WS N3,适用于多种荧光物质的分析

您好,欢迎来到新研之家 文章关键词:Tide Quencher 7.1WS 叠氮,TQ7.1WS 叠氮,Tide Quencher 7.1WS azide,TQ7.1WS N3,TQ7.1WS azide,Tide Quencher 7.1WS N3 一、基本信息 产品简介&#xff1…

java SECS管理系统 将逐步推出 SECS 客户端(Passive) 管理系统 SECS快速开发平台 springboot secs开发平台

SECS管理系统 这是一套SECS客户端(Passive),可以直接连接PLC设备,支持Modbus、三菱MC、欧姆龙Fine、OPC-UA、西门子S7设备等通信。 企业已经有了EAP软件,但是设备没有SECS通信功能,这时候可以使用这套框架,直接连接设备&#xff…

springboot集成shiro+前端vue,前后端分离项目遇到跨域以及sessionid拿不到等问题

近期在写前后端分离的项目,由于前后端分离导致原来使用的shiro配置无法满足现有系统要求。同时在前后端分离项目中存在的一些问题。例如,一些用户信息需要存储在后端方便进行安全性判断,但这些存储在后端的session前端却获取不到(…

专业140+总410+哈尔滨工业大学803信号与系统和数字逻辑电路考研经验哈工大电子信息(信息与通信工程-信通)

一年的努力付出终于有了收获,今年专业课140,总分410顺利上岸哈工大803电子信息(信息与通信-信通),回顾总结了自己这一年的复习,有得有失,希望对大家复习有所帮助。 数学 时间安排:…

C++力扣题目40--组合总和II

力扣题目链接(opens new window) 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是…

linux pxe高效批量网络装机

系统装机的三种方式 U盘(pe) 光驱 网络启动(pxe) pxe PXE 的全称是 preboot execute environment它其实是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像&#…

252:vue+openlayers 绘制锥形渐变填充色的圆形

第252个 点击查看专栏目录 本示例的目的是介绍如何在vue+openlayer中绘制带有锥形渐变填充色的圆形。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共131行)相关API参考专栏目标示例效果 </

【论文阅读】Speech Driven Video Editing via an Audio-Conditioned Diffusion Model

DiffusionVideoEditing&#xff1a;基于音频条件扩散模型的语音驱动视频编辑 code&#xff1a;GitHub - DanBigioi/DiffusionVideoEditing: Official project repo for paper "Speech Driven Video Editing via an Audio-Conditioned Diffusion Model" paper&#…

IOS-高德地图SDK接入-Swift

申请key 这个要前往高德开发平台注册成为个人开发者然后在控制台创建一个应用&#xff1a; 高德开发平台 注册步骤就不写了&#xff0c;写一下创建应用的步骤&#xff1a; 1、点击应用管理——>我的应用 2、点击右上角的创建新应用 3、输入内容&#xff1a; 4、点击添加ke…

计算机视觉丨基于OpenCV的人脸识别打卡系统

文章目录 写在前面项目分析需求分析1.数据模型2.打卡功能3.数据维护4.考勤报表 系统设计项目设计1.文件系统2.数据模块3.工具模块4.服务模块5.人脸识别6.主函数 运行结果写在后面 写在前面 本期内容&#xff1a;基于OpenCV的WANT公司人脸识别打卡系统。 项目需求&#xff1a;…

Flink(十三)【Flink SQL(上)】

前言 最近在假期实训&#xff0c;但是实在水的不行&#xff0c;三天要学完SSM&#xff0c;实在一言难尽&#xff0c;浪费那时间干什么呢。SSM 之前学了一半&#xff0c;等后面忙完了&#xff0c;再去好好重学一遍&#xff0c;毕竟这玩意真是面试必会的东西。 今天开始学习 Flin…

阿里云 linux Centos7 安装 Miniconda3 + 创建Python环境

1.下载miniconda &#xff08;1&#xff09;法一&#xff1a;可以去下载清华源的miniconda镜像源&#xff0c;选择自己需要的版本&#xff0c;然后上传到Linux服务器上&#xff0c;linux上使用请选择linux版本&#xff0c;如下&#xff1a; &#xff08;2&#xff09;法二&…

在Excel中如何打开VBA,这里提供两种方法

想在Excel中创建或添加自己的自定义Visual Basic脚本吗&#xff1f;第一步是了解如何在Excel中打开VBA编辑器。 在易用性和整体功能方面&#xff0c;没有其他电子表格应用程序能与Excel相提并论。无论你想做什么&#xff0c;只要你能深入挖掘Excel的深层菜单&#xff0c;就有很…

Ubuntu 22.04 Cron使用

需要定时处理的场景还是比较多的&#xff0c;比如信息推送、日志清理等。 这篇文章我们来说说如何使用cron来实现定时处理&#xff0c;以及监控任务的执行。 使用 Ubuntu中使用cron&#xff0c;要用到的命令是crontab。不加sudo时&#xff0c;处理的是个人的定时任务。当加上…

HarmonyOS应用开发者高级认证试题库(鸿蒙)

目录 考试链接&#xff1a; 流程&#xff1a; 选择&#xff1a; 判断 单选 多选 考试链接&#xff1a; 华为开发者学堂华为开发者学堂https://developer.huawei.com/consumer/cn/training/dev-certification/a617e0d3bc144624864a04edb951f6c4 流程&#xff1a; 先进行…

支持华为GaussDB数据库的免费开源ERP:人力资源管理解决方案概述

开源智造所推出的Odoo SuperPeople数字化解决方案将HR和薪资数据与财务、项目规划、预算和采购流程连接起来&#xff0c;消除了多套系统给企业带来的信息孤岛问题。 ——复星集团 人力资源中心 高经理 一种更具吸引力、更有洞察力的人员管理方式 什么是开源智造Odoo的人力资源…

找不到mfc100.dll的解决方法,怎么修复mfc100.dll文件

当我们在使用电脑时&#xff0c;时常可能会遇到各类系统提示的错误信息。"找不到mfc100.dll" 就是这些错误之一&#xff0c;该错误提示会妨碍我们执行一些应用程序或特定代码。为了帮助读者克服这个技术障碍&#xff0c;本篇文章将详尽阐明导致该问题的根本原因&…

SQL进阶3

二、多表连结 1、什么叫联结 下面&#xff0c;我们举个例子来说明&#xff1a; 学校的安排的课程信息&#xff0c;我们平时都会为主要人员负责的对应课程信息创建表格&#xff0c;让其更好地检索得到对应数据信息。学生可以查到自己本身的课程信息&#xff0c;而老师也可以查…

三种引入CSS的方式

文章目录 CSS基础知识概述CSS的注释CSS的格式 三种引入CSS的方式内嵌式外链式行内式优先级 CSS基础知识 概述 Cascading Style Sheet 层叠样式表 前端三大基础之一(Html结构 CSS样式 JS动作) 最早由网景公司&#xff08;Netscape&#xff09;提出&#xff0c;在1996年受到w…