处理器、指令集架构和操作系统——32-bit与64-bit_64-bit与32-bit-程序员宅基地

技术标签: 架构  

下图是一个典型系统的硬件组成,其中的总线PC(程序计数器)寄存器的大小都被设计成字(word)。字长(即字的字节数)是一个基本的系统参数,在不同的系统中通常不一样,如嵌入式设备往往只有1或2个字节,而常见的系统则为4字节8字节
典型系统的硬件组成
我们在安装操作系统和软件的时候通常会面临32-bit64-bit两种选择,并且有时还需要了解自己电脑的处理器32bit还是64-bit的。
那么,上面提到的字长与32-bit、64-bit到底有什么关系呢?


一、处理器

32-bit处理器指的是寄存器地址总线数据总线的字长为4字节(即32bits)的处理器。
64-bit处理器指的是寄存器地址总线数据总线的字长为8字节(即64bits)的处理器。
以下摘自wikepedia对32-bit64-bit处理器的定义:

In computer architecture, 32-bit integers, memory addresses, or other data units are those that are 32 bits (4 octets) wide. Also, 32-bit CPU and ALU architectures are those that are based on registers, address buses, or data buses of that size. 32-bit microcomputers are computers in which 32-bit microprocessors are the norm.

In computer architecture, 64-bit computing is the use of processors that have datapath widths, integer size, and memory address widths of 64 bits (eight octets). Also, 64-bit computer architectures for central processing units (CPUs) and arithmetic logic units (ALUs) are those that are based on processor registers, address buses, or data buses of that size. From the software perspective, 64-bit computing means the use of code with 64-bit virtual memory addresses.

处理器的内部硬件结构决定了它是32-bit还是64-bit。64-bit的地址总线是32-bit的两倍,因此可寻址空间更大,使应用程序具有更大的虚拟地址空间;64-bit每次能够处理的字长比32-bit更大,因而在一些对性能要求高的场合更有优势。


二、指令集架构

有一些软件在下载的时候会提示选择“x86”还是“x86-64”版本。这里的“x86”和“x86-64”其实是指令集架构的名称。

通俗地说,指令集架构(Instruction set architecture,ISA)就像是特定处理器的设计图纸,规定了该类处理器支持哪些机器指令(指令集)、寄存器有哪些状态以及输入输出模型。

根据指令集结构的设计,在处理器上通过硬件电路进行实现,就得到了支持该指令集架构的处理器。同一个指令集架构可以有多种不同的实现方式,基于同一指令集架构的应用程序可以相互移植。

根据wikipedia更加严格的定义,指令集架构是计算机的抽象模型,而指令集架构的在特定处理器上的实现方式则称为微架构(Microarchitecture)。

指令集是计算机的抽象模型,是软件和硬件之间的接口。它定义了计算机支持的数据类型、寄存器等具有哪些状态以及这些状态各自的含义、指令集(一组构成计算机机器语言的机器指令)和输入输出模型。一个ISA可以有多个不同的实现,但是建立在同一个ISA之上的软件可以运行于该ISA的不同实现。
微架构(Microarchitecture)是给定ISA在特定处理器上的实现方式。同一个ISA可以使用不同的 Microarchitecture来实现。
计算机架构是微架构和指令集的总和。

指令集架构规定了处理器的指令集——该硬件所支持的机器指令(可以用更具有可读性的汇编语言来描述)。操作系统和其它应用程序的代码最终都要转化为对应机器指令,才能被处理器解释和执行。

可见,指令集架构决定了处理器的实现。也就是说,指令集架构的32-bit64-bit决定了对应处理器的位数。例如,x86-64 ( 也称为x64、x86_64、AMD64和Intel 64)是X86指令集的64-bit版本,同时也支持32-bit和64-bit的指令集。


三、操作系统与应用程序

操作系统建立在处理器之上(如下图所示),利用处理器的指令集来进行硬件管理和资源抽象。根据目标处理器的不同,操作系统也相应地分为32-bit和64-bit的系统
操作系统提的分层视图
现在的大部分处理器都是64-bit的,支持64-bit操作系统;同时,这些处理器也完全兼容32-bit操作系统。但是,32-bit的处理器则不能安装64-bit的操作系统,因为它只支持32-bit的指令集。

应用程序利用操作系统提供的服务来完成特定的任务。64-bit操作系统通常能同时支持32-bit和64-bit的应用程序,但是32-bit的操作系统则不支持64-bit的应用程序(除非通过某些虚拟化来实现)。


四、如何查看位数

如何查看自己的处理器和操作系统是32-bit还是64-bits?
这里给出了Windows的查看方法,下面介绍linux下的查看方法。执行lscpu命令,如下图所示:
lscpu命令执行效果
“Architecture”表示CPU的类型:”x86_32” 为32-bit,“x86_64”则为64-bit;
“CPU op-mode(s)”表示linux系统的类型:只有“32-bit”为32-bit,包含“64-bit”则为64bit。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u011458874/article/details/121141698

智能推荐

AutoCAD Mechanical v2022.1.2 CAD机械版简体中文精简直装版_cad机械版精简-程序员宅基地

文章浏览阅读2.5k次。AutoCAD软件是由美国欧特克有限公司(Autodesk)出品的一款自动计算机辅助设计软件,可以用于绘制二维制图和基本三维设计,通过它无需懂得编程,即可自动制图,因此它在全球广泛使用,可以用于土木建筑,装饰装潢,工业制图,工程制图,电子工业,服装加工等多方面领域。_cad机械版精简

WPF图像上画线_view.findresource("trans") as transformgroup;-程序员宅基地

文章浏览阅读2.3k次。图上显示跟随鼠标的十字交叉线我们在PageLight页面上实现该功能第一步,PageLight.xaml添加以下代码<Page ...> <Grid> ... <Grid Name="workspace" Grid.Row="2" Grid.Column="1" Background="Black" MouseLeftButtonDown="ImgMouseLeftButtonDown" MouseLeftBu_view.findresource("trans") as transformgroup;

实体店小程序有哪些功能?_线下门店小程序功能-程序员宅基地

文章浏览阅读58次。综上所述,实体店做小程序需要考虑的功能有展示店铺信息、产品信息、关联公众号文章等。同时还可以添加在线客服、优惠活动、订单管理、用户评价等功能,提高用户购物体验和店铺的销售量。4. 用户评价:在小程序中设置用户评价功能,让用户对商品和服务进行评价,提高店铺的口碑。2. 产品信息:在小程序中展示店铺的产品信息,包括商品的图片、描述、价格等信息。可以通过分类和搜索功能,帮助用户快速找到心仪的商品。3. 关联公众号文章:如果实体店已经有了公众号,可以将公众号文章关联到小程序中,方便用户在小程序中阅读和分享。_线下门店小程序功能

1day漏洞包含POC-金和OA jc6 viewConTemplate.action存在FreeMarker模板注入漏洞-程序员宅基地

文章浏览阅读612次,点赞5次,收藏16次。金和JCS协同管理应用软件采用了精确管理模型的最新指导思路,充分融入现代企业的管理科学精髓,通过结合最新的信息化技术,从而更高效的帮助客户开展业务、管理企业,提高效率。JCS除了显著的“集团化应用”的特色外,还具有灵活易用的“信息门户应用”功能,可以根据个人需求,定制灵活的个性化工作台,全面体现了金和JCS以人为本、管理精确的理念。其接口存在命令执行漏洞,可能导致服务器被攻击者接管。

Linux学习——uboot入门_linux uboot-程序员宅基地

文章浏览阅读3.1k次,点赞4次,收藏34次。uboot是一个裸机程序,是一个,用于启动Linux 或者其他其他系统。uboot主要工作是初始化DDR,因为Linux是运行在DDR里的,Linux镜像(Zimage /ulmage)+设备树(.dtb)存放在SD、EMMC、NAND、SPI Flash等外置存储器中。Uboot需要将Linux镜像从外置Flash拷贝到DDR中,linux系统才能运行。_linux uboot

解决Windows中mfc110u.dll文件丢失问题-程序员宅基地

文章浏览阅读2.8k次。或者将文件复制到Windows系统目录,这个需要注意电脑的系统是32位还是64位,如果是32位的系统,那就将本站下载32位的dll文件放到“C:/Windows/System32”这个文件夹里面,如果是64位的系统,那就将本站下载的32位dll文件放到“C:/Windows/SysWOW64”这个文件夹里面,本站下载的64位文件放到“C:/Windows/System32”这个文件夹里面.二、扫描完成,扫描结果分成三部分,包括1,待修复的丢失文件。1、从下面列表下载mfc110u.dll文件。_mfc110u.dll

随便推点

Python 处理dat文件并画图_python读取dat文件并作图-程序员宅基地

文章浏览阅读2.8k次。思路:首先每行读取数据按照经纬度,数据是由北向南,由西向东的。通过np.delete()删除每行年份和月份。然后将字符转化成数字读取转化成三维数据,最后进行数据处理后绘图就行。上面没有经纬度,只有对应经纬度的数据,因此先进行数据处理。_python读取dat文件并作图

linux 下部署springboot 配置上传文件路径 Caused by: java.io.IOException: Unexpected output data-程序员宅基地

文章浏览阅读4.5k次。linux 下部署springboot 配置上传文件路径 Caused by: java.io.IOException: Unexpected output data _unexpected output data

Python“牵手”淘宝天猫商品评论数据采集方法,淘宝API申请指南_淘宝商品评价关键词 数据采集-程序员宅基地

文章浏览阅读892次。淘宝平台API接口是为开发电商类应用程序而设计的一套完整的、跨浏览器、跨平台的接口规范,淘宝API接口是指通过编程的方式,让开发者能够通过HTTP协议直接访问淘宝平台的数据,包括商品信息、店铺信息、物流信息等,从而实现淘宝平台的数据开放。这些接口提供了一种方便、高效的方式,帮助开发者在没有直接访问淘宝平台的情况下,以编程方式从平台获得数据。二、taobao.item_review-获取淘宝商品评论数据返回值说明。2.请求示例(Python)_淘宝商品评价关键词 数据采集

SQL Server中怎么给表添加注释_sqlserver创建表添加备注-程序员宅基地

文章浏览阅读3.8k次。在 SQL Server 中,可以使用 sp_addextendedproperty 存储过程为表添加注释。此时,就添加完毕了。打开 SQL Server Management Studio,连接到相应的数据库。在“名称”列中输入“MS_Description”,在“值”列中输入表的注释。在“对象资源管理器”中,展开数据库,找到要添加注释的表。在“属性”窗口中,选择“扩展属性”选项卡。在“扩展属性”列表中,点击“添加”按钮。. 点击“确定”按钮保存注释。右键单击该表,选择“属性”。_sqlserver创建表添加备注

2016 ACM/ICPC亚洲区大连站-重现赛题解-程序员宅基地

文章浏览阅读319次。The 2016 ACM-ICPC Asia Dalian Regional Contest [Cloned]【A - Wrestling Match】【题目大意】有一个球队,队员有好坏之分,给你总人数n,m个对立关系,x个已知的好队员和y个已知的坏队员,问你能否将所有人分为两组,一组好一组坏【解题思路】二分图染色裸题【AC代码】#include <bits/stdc++.h&...

Ubuntu下搭建Redis主从集群_ubuntu22 redis 主从-程序员宅基地

文章浏览阅读870次。共包含三个节点,一个主节点,两个从节点。这里我们会在同一台虚拟机中开启3个redis实例,模拟主从集群,信息如下。_ubuntu22 redis 主从

推荐文章

热门文章

相关标签