编程内功心法「底层原理系列」 回归与本质,让本文带你认识什么是计算机软件系统

news2024/11/23 21:23:50

前提概要

如果希望可以把计算机编程技术提升到另外一个高度,,那么想要搞清楚什么是软件设计,首先就要理解什么是计算机软件,在这之后,再去考虑为什么对软件进行设计,以及在通常情况下应该怎样设计软件。

什么是计算机

作为开端,首先来说说计算机到底是什么样子的电子设备,它是由那些部分组成的,以及这些部分在计算机程序运行中都起到了什么样子的作用。在初版的计算机中最核心的部件主要有三个:控制器,运算器和存储器。其中控制器和运算器主要针对于指令集层面,需要挂靠到CPU中,才会发挥作用机制。

CPU中央处理器

中央处理器就是我们常说的CPU(Center Processing Unit)。起始是我们常常所了解的集成电路芯片,这种电路芯片一般都会通过高分子纳米技术的光刻机刻录到一块硅晶体电子版中,并且统一进行分割成为多个CPU芯片的主板上面,一个CPU可以包含了几十亿哥晶体管,我们可以理解一下电控开关机制(0和1信号量)。

CPU处理器的发展方向

随着摩尔定律的慢慢陨落,CPU性能提升方向已经慢慢从纵向转换为横向,这是为什么呢?原来就是CPU中只有一套客户意向配合的提供计算的集成电路。这样的一套电路被称之为一个CPU核心(core)。只会拥有一个CPU核心(逻辑内核)的CPU被称之为单核CPU。

CPU处理器的纵向发展

如果希望提高CPU的性能机制,那么就必须要进行改进CPU核心的电路结构,以及相关的电路密度机制,这就是所谓的纵向发展计划。也就是说只会焦聚于单核心的优化机制。

单核心的优化技术体系,如下所示:

CPU电路板

CPU芯片的电路底版,主要用于承载CPU核心数以及相关的器件,单个CPU核心的电路密度已经很接近物理上的极限阈值,所以,每个CPU工厂的厂商都开始陆陆续续的研发推出拥有很多核心的CPU机制体系,我们称之为多核心CPU,一个多核CPU会有多个CPU核心,或者多套集成电路,这些CPU核心之间的必须会保持独立且相互合作的方式,从而可以的拥有几个或者十几个核心,有的最新的CPU甚至拥有几十个多核心之多。

每个CPU核心都会拥有自己独立的控制器,运算器和寄存器。简单来说,控制器只会着运算器和寄存器,并一次来实现CPU指令的执行,以及数据的读出和写入。

  • 运算器:主要用于各种算数和逻辑运算操作,比如说算术中的加、减、乘、除以及逻辑上的与或非、异或运算等,此外还有我们很少了解的移位和比较、传送等。

  • 寄存器:在进行运算操作期间,在CPU运算计算器程序的过程中,临时存储那些马上就要用到得的指令和数据。包括了CPU指令、中间运算结果、程序运算状态以及相关的内存指令地址和数据地址。

所有的相关的控制器和运算器都是会频繁的使用到寄存器的,有的时候甚至需要独自占有寄存器,所以它们之间是想当的密切的。

Storage存储器

存储器是哟个可以将数据或者相关信息写入进来,并且永久性或者临时性存储下去,等待需要进行读取的时候,就需要进行读取操作,所以我们定义在一定的条件下可以存储的了数据的器件都可以称之为存储器,例如:硬盘、SSD或者U盘、移动硬盘等都是。

其实,这里多说一句,指令也算是一种数据,一种可以是驱动CPU执行某种操作的数据,其中也会包含了很多中操作的代码以及包含内部相关操作的数据信息。(也可能是对应的存储地址)。而对于数据而言:一般属于哪种静态存储在某个地址中的具有某种格式或者结构的内存信息内润。

计算机中的存储设备

存储器作为计算机核心部件大概有三种:寄存器、高速缓冲存储器和内存存储器、以及我们常用的硬盘存储器。

  • 寄存器的速度是最快的,它属于CPU核心里的一种组件。

  • 高速缓存也用于暂存的指令和数据,但它暂存的往往是近期会用到的数据,而不是马上就要用的数据,速度仅次于寄存器

  • 内存存储器,速度慢于前两者的速度机制,但是高速缓冲存储器是两者的桥梁,所以不会造成过大的速度瓶颈。

总体CPU电路板机制的逻辑结构图

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

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

相关文章

计算机毕业设计:基于HTML学校后台用户登录界面模板源码

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

KT148A语音芯片SOP外挂功放芯片8002D的说明_V1

目录 一、简介 KT148A语音芯片内置8欧姆0.5W的功放,所以一般的应用场景,播放一些提示音音量是足够的。但是有的需求还需要驱动更大的扬声器,实现更大的播放音量,这里我们给出解决方案。KT148AHAA8002D的组合 二、硬件电路如下-K…

防抖和节流

使用场景: 防抖在连续的事件,只需触发一次回调的场景有: 搜索框搜索输入。只需用户最后一次输入完,再发送请求。 窗口大小resize。只需窗口调整完成后,计算窗口大小。防止重复渲染。 登录、发短信等按钮避免用户点击太…

云原生周刊 | 美国国防部发布零信任战略与路线图

美国国防部发布了到 2027 年截止的零信任战略与路线图,总共有 45 项能力,最终目标是“安全的国防部信息企业”。 开源项目推荐 Extism Extism 是一个 WebAssembly 插件实现框架,它可以给你的应用开发出各种各样的 WebAssembly 插件&#xf…

HTML网页设计——轮滑运动体育类人物介绍主题12页面毕业设计网页

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

[附源码]JAVA毕业设计商店管理系统(系统+LW)

[附源码]JAVA毕业设计商店管理系统(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术&…

电池供电遥测终端RTU 遥测终端机 低功耗遥测采集终端 智能远传 防水IP68

平升电子电池供电遥测终端RTU/遥测终端机/低功耗遥测采集终端是基于4G、5G、NB-IoT网络实现数据采集、远程传输、分析计算、越限报警的智能设备,具有功耗低、IP68防水等特点。特别适合用在无供电条件、防水防尘要求高的监测现场。 随着通信网络更迭、产品持续改进&…

在线文档协同办公-开箱即用demo

在线文档协同办公-开箱即用demo服务安装(略)下面开始集成打开文件保存文件共同编辑展示一下集成后的效果图服务安装(略) 这里可以参考前几篇博客内容 Linux版 windows版 下面开始集成 打开文件 1.创建一个空的html文件。 添加…

python匿名函数和高阶函数总结

bilibili 千峰python 学习笔记 匿名函数 lambda函数的语法只包含一个语句,如下: lambda 参数列表: 运算表达式Lambda函数能接收任何数量的参数但只能返回一个表达式的值匿名函数可以执行任意表达式(甚至print函数),但是一般认为表达式应该有…

UDP-B-L-阿拉伯糖二钠盐,UDP-b-L-arabinopyranose disodium salt,15839-78-8

产品名称:UDP-B-L-阿拉伯糖二钠盐 英文名称:UDP-b-L-arabinopyranose disodium salt CAS号:15839-78-8 分子式:C14H22N2O16P2 分子量:536.27600 产地:西安 规格:1mg 5mg 10mg 纯度&#xff1…

西门子CT重建算法

相对于MR,CT在参数及扫描方面并不是太难,但是CT的图像重建及各种算法则是非常难的,也是比较抽象的。这篇文章介绍CT图像重建算法等相关内容。 CT技术是CT诊断的基础,帮助医务工作者充分掌握CT技术是我们的责任和义务! …

Redis原理 - 对象的数据结构(SDS、Inset、Dict、ZipList、QuickList、SkipList、RedisObject)

Redis数据结构 1. SDS Redis 是用 C 语言写的,但是对于 Redis 的字符串,却不是 C 语言中的字符串(即以空字符’\0’结尾的字符数组),它是自己构建了一种名为 简单动态字符串(simple dynamic string,SDS&am…

如何在ios成功上架android tv?​

如果你是新手,将在这里清晰发布到App Store整个上架流程,还有相应的流程解决方案。​ 如果你上架过iOS APP,这里会了解到有更快捷的上架过程。​ 上架iOS最基本需要一个付费的开发者账号,还没有的话申请一个或者借用。​ 通常也…

7.springboot中整合Jpa多数据源

Springboot 整合spring data jpa多数据源 在使用Mybatis时会涉及多数据源的问题,同样,当我们使用Jpa作为持久化处理方式时,也会涉及多数据源的问题,本节我们来讲解一下Springboot如何整合Spring data Jpa多数据源。 1.创建项目 …

ARM基础(1):Cortex-M3的核心寄存器和特殊寄存器

Cortex-M3处理器的寄存器包括R0~R15和一些特殊的寄存器。其中R0到R12是通用寄存器,但是一些16位的Thumb指令只能访问R0到R7(低寄存器),而32位的Thumb-2指令则可以访问所有这些寄存器。特殊寄存器只能通过特殊访问指令访问。 文章目录1 核心寄存器1.1 R13…

牛客网刷题【BC33、BC56、BC44、BC91、BC49、写函数求最大值】

目录 一、BC33 计算平均成绩 二、BC56 线段图案 三、BC44 判断整数奇偶型 四、BC91 成绩输入输出问题 五、BC49 判断两个数的大小关系 六、写函数&#xff0c;求最大值 一、BC33 计算平均成绩 #include <stdio.h>int main() {double score0;double sum0;int i…

VK1088B 22*4点 LCD液晶显示屏驱动IC,4*4MM超小体积,具省电模式,多用于超小型LCD段码屏显示驱动,FAE技术支持

产品品牌&#xff1a;永嘉微电/VINKA 产品型号&#xff1a;VK1088B 封装形式&#xff1a;QFN32&#xff08;4MM*4MM&#xff09; 概述&#xff1a; VK1088B是一个点阵式存储映射的LCD驱动器&#xff0c;可支持最大88点&#xff08;22SEGx4COM&#xff09;的LCD屏&#xff0c;也…

osgEarth示例分析——osgearth_featurequery

前言 osgearth_featurequery示例&#xff0c;分析了如何拾取地球上的特征&#xff0c;并对特征信息进行提取与显示。 执行命令&#xff1a;osgearth_featurequeryd.exe earth_image\china-simple.earth 需要注意的是&#xff1a;earth文件&#xff0c;必须有特征内容。否则无…

tkinter制做一个音乐下载小软件,多种音乐免费听

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~ 平常我们下载的歌曲&#xff0c;都是各种妖魔鬼怪的格式横行~ 想下载下来用一下都不行&#xff0c;还只能在它的播放器内听&#xff0c;这谁受得了~ 学Python是用来干嘛的&#xff1f; 当然是解…

929903-87-7,Ac-Arg-Leu-Arg-MCA

Ac-RLR-AMC, fluorogenic substrate for assaying the trypsin-like activity of purified proteasomes (Km 78 μM). Ac-RLR-AMC&#xff0c;荧光底物&#xff0c;用于测定纯化蛋白酶体的胰蛋白酶样活性(Km 78 μM)。 多肽荧光标记由于没有放射性&#xff0c;实验操作简单。…