计算机体系结构中的8个伟大思想

news2024/10/1 23:46:55

一、面向摩尔定律的设计

        计算机设计者面临的一个永恒的问题就是摩尔定律。摩尔定律指出:集成电路上可容纳的晶体管数每18~24个月就会翻一番。由于计算机设计通常需要几年时间,因此项目结束时芯片的集成度较之项目开始时,很容易翻一番甚至翻两番。所以计算机体系结构设计师应当预测设计完成时的工艺和技术水平,而不是设计开始时的工艺。

二、使用抽象简化设计

  计算机架构师和程序员都需要开发能够提高效率的技术,否则设计周期会像资源规模随摩尔定律增长一样延长。提高硬件和软件开发效率的主要技术之一是使用抽象(abstraction)来表征不同级别的设计。从而,低层将细节隐藏起来,呈现给高层的只是一个简化的模型

三、加速大概率事件

  加速大概率事件(common case fast)远比优化小概率事件更能提高性能。大概率事件通常比小概率事件简单,因而更易于对其进行优化以提高性能。加速大概率事件意味着设计者需要知道哪些事件是经常发生的,这要经过仔细的实验与测量过程。

四、通过并行提高性能

  从计算诞生开始,计算机架构师就给出了通过并行(parallel)执行操作来提高性能的设计方案。因此常常使用 硬件并行特性进行“加速”,对于硬件设计其实也就是面积换时间的思想。

五、通过流水线提高性能 

  在计算机体系结构中,有一种并行技术非常普遍,这种技术有一个特殊的名字:流水线(pipelining)。例如,许多西部电影中有这样的场景,在消防车出现之前,人们用“水桶队列”来灭火——小镇居民们一个接一个排成长队,接力将水桶快速从水源传至火场,而不是让每个人来回奔跑运水灭火。

六、通过预测提高性能

        假设预测错误后恢复的代价不大, 并且预测的准确率相对较高,那么通过猜测的方式提前开始工作,要比等到确定知道能执行时才启动要效率高一些。

        例如CPU设计就是使用了分支预测,通过精确的动态分支预测技术来提高流水线效率。

        预测也体现了加速大概率事件的思想。

七、存储器层次结构

        现如今,计算机价格的很大一部分来自于存储器的开销。存储器对程序执行有很大的影响,其速度影响着程序的性能,其容量限制着解题的规模。因此,程序员总是希望存储器速度更快、容量更大、价格更便宜。计算机架构师发现,通过存储器层次结构(hierarchy ofmemory)可以来缓解这些相互矛盾的需求。在存储器层次中,位于顶层的存储器速度最快、容量最小,但每位价格最昂贵。反之,处于最底层的存储器速度最慢、容量最大,但每位价格最便宜。cache技术可以给程序员造成一种假象,让他们感觉自己所使用的主存既有存储器层次中顶层的高速度,又和底层存储器一样价格便宜量又足。

八、通过冗余提高可靠性

        计算机工作时不仅要快,还要稳定可靠。任何一个物理器件都有可能失效,因此可以通过增加冗余器件的方式提高系统的可靠性(dependable)。当发生失效时,冗余器件可以替代失效器件并帮助检测错误。例如,牵引式挂车后轴每边都有两个双轮胎,当一个轮胎出问题时,另一个轮胎保证卡车仍然可以继续行使。(卡车司机发现故障后,立即开往修理厂修复轮胎,从而又恢复了冗余性。)

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

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

相关文章

数据结构与算法设计分析——分治法

目录 一、分治法的定义二、分治法的基本步骤三、分治法的应用(一)查找算法二分(折半)查找 (二)排序算法1、交换排序——快速排序2、归并排序 一、分治法的定义 分而治之可称为分治法,即逐个击破…

Qt开发学习笔记02

将窗口设为提示框 Qt::ToolTipQt 数据库连接池 #ifndef SQLITE_H #define SQLITE_H#include <QSqlDatabase> #include <QSqlError> #include <QSqlQuery> #include <QQueue> #include <QMutex> #include <QDebug> #include "../con…

安装spark并配置高可用

0、说明 上一篇文章讲了如何安装hadoop&#xff0c;这里将spark的详细安装步骤记录在这里。 其中实现了spark的高可用配置&#xff0c;即将zookeeper配置到spark集群中。对于资源管理也配置了yarn模。并开启了spark-sql的配置&#xff0c;可以通过jdbc链接spark。 spark 集群…

Three.js真实相机畸变效果模拟

有没有想过如何在 3D Web 应用程序中模拟物理相机&#xff1f; 在这篇博文中&#xff0c;我将向你展示如何使用 Three.js和 OpenCV 来完成此操作。 我们将从模拟针孔相机模型开始&#xff0c;然后添加真实的镜头畸变。 具体来说&#xff0c;我们将仔细研究 OpenCV 的两个失真模…

【C++】Stack Queue -- 详解

一、stack的介绍和使用 1、stack的介绍 https://cplusplus.com/reference/stack/stack/?kwstack 1. stack 是一种容器适配器&#xff0c;专门用在具有后进先出操作的上下文环境中&#xff0c;其删除只能从容器的一端进行元素的插入与提取操作。 2. stack 是作为容器适配器被…

改变世界-生成式人工智能

麦肯锡在其《生成人工智能的经济潜力&#xff1a;下一个生产力前沿》中声称&#xff0c;“ChatGPT、GitHub Copilot、Stable Diffusion 等生成式人工智能应用程序以 AlphaGo 没有的方式吸引了世界各地人们的想象力&#xff0c;这要归功于它们广泛的实用性——几乎任何人都可以使…

[mysql工具]Windows批处理方式实现MySQL定期自动备份

Windows批处理方式实现MySQL定期自动备份 对MySQL数据库而言&#xff0c;大部分数据库工具都具有备份功能&#xff0c;但并不能做到定期自动备份&#xff0c;在Windows环境下&#xff0c;手工备份MySQL是很繁琐的&#xff0c;所以我们通过MySQL提供的备份命令mysqldump&#xf…

如何防止重复提交订单

产生的原因 一种是由于用户在短时间内多次点击下单按钮&#xff0c;或浏览器刷新按钮导致。另一种则是由于Nginx或类似于SpringCloud Gateway的网关层&#xff0c;进行超时重试造成的。由于网速等原因造成页面卡顿&#xff0c;用户重复刷新提交页面黑客或恶意用户使用 postman…

maven配置代理

1.找到文件 find / -name "settings.xml" 当 maven 无法正常访问网络时候&#xff0c;需要通过代理进行访问 找到Maven的setting.conf文件 2.找到proxies 在maven的 setting.conf文件中找到 默认找到的时候文件 这里是被注释的。 3.配置如下 3.1配置截图 <…

QML 带框最大化显示方法

1.QML窗口最大化很多会给出如下方法: visibility: "FullScreen" 此方法不好的方面是没有最大化&#xff0c;最小化&#xff0c;关闭按钮 2.通过showMaximized() 方法可以满足我们需求:在onCompleted 方法中执行 实现的效果如下:

前后端分离计算机毕设项目之基于SpringBoot的无人智慧超市管理系统的设计与实现《内含源码+文档+部署教程》

博主介绍&#xff1a;✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久&#xff0c;选择我们就是选择放心、选择安心毕业✌ &#x1f345;由于篇幅限制&#xff0c;想要获取完整文章或者源码&#xff0c;或者代做&am…

浏览器自动化神器:Automa 轻松实现任务编排 | 开源日报 No.52

usememos/memos Stars: 13.8k License: MIT memos&#xff0c;一个轻量级的、自托管的备忘录中心。开源且永久免费。 开源且永久免费使用 Docker 可以在几秒钟内完成自我托管支持 Markdown 格式可定制和共享提供 RESTful API 用于自助服务 mamoe/mirai Stars: 12.6k Licen…

2023.10.7 Java 创建线程的七种方法

目录 继承 Tread 类&#xff0c;重写 run 方法 实现 Runnable 接口 使用匿名内部类&#xff0c;继承 Thread 类 使用匿名内部类&#xff0c;实现 Runable 接口 使用 Lambda 表达式 使用线程池创建线程 实现 Callable 接口 继承 Tread 类&#xff0c;重写 run 方法 自定…

uni-app项目成功编译到微信开发者工具出现警告:当前组件仅支持 uni_modules 目录结构 ,请升级 HBuilderX 到 3.1.0 版本以上!

问题描述 为什么uni-app项目编译成功后&#xff0c;运行到微信开发者工具&#xff0c;却出现警告&#xff1a;当前组件仅支持 uni_modules 目录结构 &#xff0c;请升级 HBuilderX 到 3.1.0 版本以上&#xff01; 初识uni-app的童鞋&#xff0c;经常会问&#xff1a;我使用HBui…

2019年[海淀区赛 第2题] 阶乘

题目描述 n的阶乘定义为n!n*(n -1)* (n - 2)* ...* 1。n的双阶乘定义为n!!n*(n -2)* (n -4)* ...* 2或n!!n(n - 2)*(n - 4)* ...* 1取决于n的奇偶性&#xff0c;但是阶乘的增长速度太快了&#xff0c;所以我们现在只想知道n!和n!!末尾的的个数 输入格式 一个正整数n &#xff…

酷开会员 | 亚运会来啦!酷开系统陪你一起看赛事!

第十九届亚洲运动会已经开始啦&#xff01;坐标杭州&#xff0c;本次亚运会有来自亚洲45个国家和地区的1.2万余名运动员参赛&#xff0c;是史上规模最大、覆盖面最广的一届亚运会。它是亚洲具有世界性影响的体育盛会&#xff0c;来自亚洲各国和地区的运动员在赛场上奋力拼搏&am…

南美阿根廷市场最全分析开发攻略,收藏一篇就够了

聊到阿根廷&#xff0c;大家可能对阿根廷的足球印象比较深&#xff0c;比如球星梅西&#xff0c;不管是不是球迷应该大部分都有听说过&#xff0c;阿根廷作为南美洲面积第二大的国家&#xff0c;市场潜力也是非常不错的&#xff0c;今天就主要来聊一下关于阿根廷市场的一些相关…

工作流程引擎有几个特点?可以提高办公效率吗?

如果想要实现高效率的自动化办公&#xff0c;还依靠传统的办公软件是没有办法实现的。在自动化发展程度越来越高的今天&#xff0c;职场办公也拥有了优质的办公软件&#xff0c;助力实现高效率办公。低代码技术平台是专业的企业级应用低代码平台&#xff0c;其中的工作流程引擎…

深入理解树状数组 | 京东物流技术团队

树状数组 树状数组&#xff08;BIT, Binary Indexed Tree&#xff09;是简洁优美的数据结构&#xff0c;它能在很少的代码量下支持单点修改和区间查询&#xff0c;我们先以a[] {1, 2, 3, 4, 5, 6}数组为例建立树状数组看一下树状数组的样子&#xff1a; 可以发现&#xff1a;不…

websocket协议 | http协议

文章目录 一、前言二、websocket协议2.1 怎么建立websocket连接 三、HTTP协议3.1 特点3.2 报文格式3.3 连接方式三次握手四次挥手 3.4 版本HTTP 1.0HTTP 1.1 3.1 http长轮询场景&#xff1a;扫码登陆 四、二者比较4.1 相同4.2 区别1.通讯方式不同2.通信效率3.数据格式 一、前言…