首页 > 其他分享 >计算机硬件-CPU-校验码

计算机硬件-CPU-校验码

时间:2024-01-14 18:55:58浏览次数:28  
标签:计算机硬件 校验码 指令 内存 寄存器 执行 数据 CPU

计算机组成部分(冯诺依曼架构):5个部分,运算器、控制器、存储、输入设备、输出设备

CPU的功能:程序控制、操作控制、时间控制、数据处理。

CPU的组成:主要由运算器、控制器、寄存器和内部总线等部件组成

运算器:执行所有的算数运算,如加减乘除等;执行所有的逻辑运算并进行逻辑测试,如与或非、比较等。

  1. 算法逻辑单元(Arithmetic Logic Unit, ALU):实现对数据的算数和逻辑运算;
  2. 累加寄存器(Accumulator, AC):运算结果或源操作数的存放区;
  3. 数据寄存器(Data Register,DR):暂时存储处理器中的数据的特殊寄存器。在计算机体系结构中,DR通常用于暂时存储从内存中读取的数据,或者将数据写入到内存中。
  4. 状态条件寄存器(Program Status Word,PSW):保存指令运行结果的条件码内容,如溢出标志等。

控制器:控制整个CPU的工作,最为重要。

  1. 指令寄存器(Instruction Registor, IR):暂存CPU正在执行的指令;
  2. 程序计数器(Program Counter,PC):存储将要执行的下一条指令的地址;
  3. 地址寄存器(Address Register,AR):在执行指令时用于存储内存地址或者I/O设备地址的特殊寄存器,这样CPU就能够准确地访问存储器中的数据。AR通常是与数据寄存器(Data Register)结合使用,以便在执行内存读取或写入操作时,能够将数据从存储器传输到数据寄存器,或者从数据寄存器传输到存储器。
  4. 指令译码器(Instruction Decoder,ID):用于解释并执行从内存中读取的指令。其主要功能是将指令的操作码(opcode)解码为对应的操作或动作,并确定指令需要的操作数、寄存器以及执行顺序。

CPU依据指令周期的不同阶段来区分二进制的指令和数据,因为在指令周期的不同阶段,指令会命令CPU分别去取指令或者数据:

  • 取指令阶段(Instruction Fetch):在这个阶段,CPU从内存中获取下一条要执行的指令。这通常涉及将指令的地址发送到内存并获取指令本身的过程。
  • 取数据阶段(Data Fetch):在执行一些指令时,CPU需要从内存中获取特定的数据。这个阶段涉及将数据的地址发送到内存并获取数据的过程。

这两个阶段交替进行,以便CPU能够顺利地执行指令。当CPU执行一条指令时,它会按照指令周期的不同阶段,依次去取指令或者数据,以完成指令的执行。

 

校验码:

因为在电子系统通信过程中,信号的传输过程和转化过程可能会被干扰,产生突发错误,因此需要通过校验码这样的机制来保障数据的完整性。

码距:在两个编码中,从A码到B码转换所需要改变的位数称为码距。一般来说,码距越大,越利于纠错和检错。

奇偶校验码:奇偶检验码只能校验出奇数个错误。在通信过程中,它通过在数据中添加一个额外的比特(称为校验位),以确保特定类型的错误(通常是单个比特的错误)可以被检测出来。在偶校验中,校验位被设置为确保整个数据(包括校验位)中1的个数是偶数。而在奇校验中,校验位被设置为确保整个数据(包括校验位)中1的个数是奇数。奇校验产生不了全0的代码。

CRC校验码:循环冗余校验(Cyclic Redundancy Check, CRC)。需要手算一下。

 

标签:计算机硬件,校验码,指令,内存,寄存器,执行,数据,CPU
From: https://www.cnblogs.com/freecheng/p/17962601

相关文章

  • 一线大厂面试真题--CPU飙高系统反应慢怎么排查
    问题解答四个方面来回答:CPU是整个电脑的核心计算资源,对于一个应用进程来说,CPU的最小执行单元是线程。导致CPU飙高的原因有几个方面:a.CPU上下文切换过多,对于CPU来说,同一时刻下每个CPU核心只能运行一个线程,如果有多个线程要执行,CPU只能通过上下文切换的方式来执行不同的线程......
  • 记一次 .NET 某药厂业务系统 CPU爆高分析
    一:背景1.讲故事前段时间有位朋友找到我,说他们的程序出现了CPU爆高,让我帮忙看下怎么回事?这种问题好的办法就是抓个dump丢给我,推荐的工具就是用procdump自动化抓捕。二:Windbg分析1.CPU真的爆高吗还是老规矩,要想找到这个答案,可以使用!tp命令。0:044>!tplogStart:1logSize:......
  • CRC循环冗余校验码
    循环冗余校验"冗余"为什么能检验?数据传输过程中不能保证所有的位数都是正确的,由于电磁干扰会产生错误,假设传输过程中最多只有1位是传输错误的,并且不需要检验出具体哪一位出现错误,只需要考虑检验数据存在错误即可不添加校验码最简单的情况是发送方只发送了一位数据,接......
  • 7.deployment扩容以及查看pod使用的CPU
    官方文档:https://kubernetes.io/zh-cn/docs/tasks/run-application/scale-stateful-set/题目1:将名为loadbalancer的deployment资源的Pod的副本数扩容为6个。解答1:扩容,如果是缩容为3个就把6改为3kubectlscale--replicas=6deployment/loadbalancer查看:kubectlgetdeploymen......
  • 32Bit、基于ARM CPU的STM32F100C6T6BTR、STM32G030F6P6TR微控制器(MCU)
    1、STM32F1系列主流MCU:STM32F100C6T6BTR ICMCU32BIT32KBFLASH48LQFPSTM32F1系列主流MCU满足了工业、医疗和消费类市场的各种应用需求。该系列在集成一流的外设和低功耗、低电压运行等基础上实现了高性能,同时还以可接受的价格实现了高集成度,并具有简单的架构和简便易用的工具......
  • 笔记本为什么不出可升级CPU的,用台式CPU不行吗?
    我十几年年前的thinkpad通过更换cpu复活了:联想ThinkPadE430ci3变i7:笔记本电脑CPU升级思路—CPU参数为什么现在的市面上可以更换cpu的笔记本非常稀少呢?intel移动CPU1-3代,CPU是和台式机一样的可以更换的。4代以后都是焊死的什么样的笔记本可以更换CPU查看封装方式:PGA封装......
  • 投屏项目中Sink端CPU占用过高问题
    一、背景今天来总结一下,自己在项目中遇到的一个CPU占用过高的问题,详细的结束从发现到定位在到解决问题的过程。原因是性能测试那边提出了一个bug,就是在投屏过程中,平板端也就是Sink端功耗非常高的问题,二、排查问题经过排查后发现:需要手机投平板后在手机侧拖动平板断开,平板端的......
  • macOS Ventura 重启报错 panic(cpu 2 caller 0xffffff800f5b4f23)
    本子:macBookpro系统:macOSVentura13.6.3报错:panic(cpu2caller0xffffff800f5b4f23):Kerneltrapat0xffffff800f5af2a0,type14=pagefault,registers:CR0:0x000000008001003b,CR2:0xffffff7fef252228,CR3:0x000000020c00e175,CR4:0x00000000003626e0RAX:0x......
  • docker 容器cpu限额绑定控制、内存使用、io读写控制及容器停止后自动释放资源
    容器控制cpu使用为避免压力测试时导致虚机爆掉,该测试虚机最好含有四个以上的cpu指定容器可以使用宿主机cpu的份额该参数只对多个容器竞争同一个cpu的时间片时有效参数 -c 或者全称 --cpu-shares可以看到控制cpu的参数使用-c或者全称--cpu-shares[root@localhost~]#......
  • Hadoop 的 ResourceManager进程占用 CPU 100% 问题排查过程
    1.top命令查看进程占用CPU情况top2.查找该进程号(22054)对应的服务方式一:top命令输入后,再按键盘中的“c”字母即可查看方式二:使用:ps-ef|grepPID命令查看ps-ef|grep220543.找到该进程中占用CPU最高的线程top-Hp220544.将线程的ID转换为16进制(用于排查、匹......