cpu字长是指cpu同时参与运算的二进制位数,现在主流的pc的机器字长都是64位的。机器字长直接决定着机器可寻址的虚拟空间地址大小。
The word size of a computer generally indicates the largest integer it can process in a single instruction, and the size of a memory address, which is usually, but not necessarily the same as the integer size.
操作系统字长要看操作系统的位数,跟机器字长并不一定一致,比如64位机器可以安装32位操作系统。虽然64位cpu的可寻址理论达2^64 bytes,但是由于系统限制,32为系统只能访问最大2^32 bytes的虚拟地址空间。另外,64位os上可以安装32位软件,如64位windows。
jvm的字长,我找了下jvm specification e7,并没有找到jvm定义字长,但是在《深入Java虚拟机》这本老经典里头,看到作者写到:
The basic unit of size for data values in the Java virtual machine is the word--a fixed size chosen by the designer of each Java virtual machine implementation. The word size must be large enough to hold a value of type byte, short, int, char, float, returnAddress, or reference. Two words must be large enough to hold a value of type long or double. An implementation designer must therefore choose a word size that is at least 32 bits, but otherwise can pick whatever word size will yield the most efficient implementation. The word size is often chosen to be the size of a native pointer on the host platform. The specification of many of the Java virtual machine's runtime data areas are based upon this abstract concept of a word. For example, two sections of a Java stack frame--the local variables and operand stack-- are defined in terms of words. These areas can contain values of any of the virtual machine's data types. When placed into the local variables or operand stack, a value occupies either one or two words. As they run, Java programs cannot determine the word size of their host virtual machine implementation. The word size does not affect the behavior of a program. It is only an internal attribute of a virtual machine implementation.
也就是说,jvm基本的数据单位是字,这个字的字长,spec中是没有规定的,但是必须足够持有byte、short、int、char、float、returnAddress和reference,而两个字的字长足以持有long和double。spec里边规定这些类型最大32位,如int的(2.3 Primitive Types and Values):
int, whose values are 32-bit signed two's-complement integers, and whose default value is zero
一般字长选择都根据底层主机平台的指针长度来选择,而指针长度是由cpu运行模式的寻址位数决定的,所以64位的机器上,运行64位OS,安装64位jvm的话,对象地址可能是64bit的,当然这根实际使用内存大小和jvm参数设置相关。
而这里提到,基于零基压缩,分配给jvm的内存必须控制在4g到32g之间,因为对象头是最小8个字节,普通寻址是地址指向字节,如果我们知道jvm里对象大小都是8字节对齐,那么一个地址可以指向8字节的首地址,也就是寻址能力扩大八倍,当然这里是指hotspot vm。而为啥最小4g呢?因为小于4g就不需要压缩了。
相关推荐
字_字节_字长_位
对机器数补码全字长各位定义了位权,提出了“首位负权记数制”及新的机器数补码数据模型。在这个新的模型下,建立了补码与其真值的等量映射,论证了机器数补码的表值域,论证了补码真值负与非负的判定法则及机器数...
解析位,字长,字节的区别和联系,为C++初学者提供有用的信息
数字观测器_考虑有限字长效益数字观测器_考虑有限字长效益数字观测器_考虑有限字长效益数字观测器_考虑有限字长效益数字观测器_考虑有限字长效益数字观测器_考虑有限字长效益数字观测器_考虑有限字长效益数字观测器_...
字节、比特、字、字长、字符串、字符集和代码页
19.计算机机器字长、指令字长、存储字长的区别和联系是什么?.zip19.计算机机器字长、指令字长、存储字长的区别和联系是什么?.zip19.计算机机器字长、指令字长、存储字长的区别和联系是什么?.zip19.计算机机器字长...
数字信号处理中的有限字长效应精选.pptx
基于matlab的有限字长效应的研究,而且通俗易懂望采纳
计算机组成原理习题答案 第 一 章 1. 什么是计算机系统、计算机硬件和计算机软件?...主机、CPU、主存、存储单元、存储元件、存储基元、存储元、存储字、存储字长、存储容量、机器字长、指令字长。
通常数字信号处理中的字长精度有限会导致比较大的计算误差,该文档对这个问题提供理论的分析
11.计算机的机器字长.zip11.计算机的机器字长.zip11.计算机的机器字长.zip11.计算机的机器字长.zip11.计算机的机器字长.zip11.计算机的机器字长.zip11.计算机的机器字长.zip11.计算机的机器字长.zip11.计算机的机器...
控制和状态寄存器:用以控制处理器的操作,且主要被具有特权的操作系统例程使用,以控制程序的执行。 1.3、 一般而言,一条机器指令能指定的四种不同操作是什么? 答:这些动作分为四类:处理器-寄存器:数据可以...
功能:用来检查linux服务器的文件系统的磁盘空间占用情况(磁盘空间大小的单位为数据块,1数据块=1024字节=1K) df –h 以人们容易理解的方式显示磁盘空间占用情况 du命令 功能:显示当前目录以及其下各子目录的大小...
操作系统原理 课程试卷(一)答案共4页 学院 专业 成绩 年级 学号 姓名 日期 考试形式: 闭卷 时间: 120分钟 一、 填空题(20分,每空1分) 1、进程通信的常用方式有 直接通信 和 间接通信 等。 2、...
在8086操作系统中,关于用十六位字长表示20位地址的解释
字长表示了计算机特点 :(1)字长表示了计算机CPU 运算速度,字长为字节的整倍数(即 8 的倍数),所以能处理字长为8 位数据的CPU 通常就叫8 位的CPU。同理32 位的CPU 就能在单位时间内处理字长为32 位的二进制数据。(2)...
详细讲述了系统设计中数据精度对系统稳定性的影响,这个往往容易被大家忽略。
数字滤波器的有限字长效应PPT学习教案.pptx
主存:计算机中存放正在运行的程序和数据的存储器,为计算机的主要工作存储器,可随机存取;由存储体、各种逻辑部件及控制电路组成。 存储单元:可存放一个机器字并具有特定存储地址的存储单位。 存储元件:存储一位...
编程实现大整数(128字长)的加、减运算。使得可以实现两个操作数的键盘输入和最终结果的输出。