微处理器尺寸

发布于 2024-09-25 08:34:03 字数 226 浏览 3 评论 0原文

我读到微处理器由几个组件组成,每个组件都有相同/不同的“大小”。但真正让我困惑的是,是什么决定了微处理器的规定大小为 16 位、32 位或 64 位……

  1. ALU 的容量吗?
  2. 数据总线的大小?
  3. 地址总线的大小?
  4. 上述的“最小公分母”?
  5. 还是其他一些我迄今为止不知道的因素?

I have read that the microprocessor consists of several components, each having same/different "sizes". But what really confuses me is what determines the stated size of a microprocessor as 16-bit, 32-bit or 64-bit...

Is it:

  1. the the ALU's capacity?
  2. the size of the data bus?
  3. the size of the address bus?
  4. the "least common denominator" of the above?
  5. or some other factor that I hitherto don't know about?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

榕城若虚 2024-10-02 08:34:03

通常,处理器的位大小是其通用寄存器的大小。这通常对应于内存总线的大小,也可能对应于地址总线的大小,但不一定。

例如,Intel 销售了名为 386SX 的 386 芯片版本 (http://en.wikipedia。 org/wiki/Intel_80386#The_i386SX_variant),其内部是具有 32 位寄存器的 386,但只有 16 位数据总线。我认为大多数人会认为该芯片仍然是 32 位处理器,而不是 16 位处理器。

Generally the bit-size of a processor is the size of its general purpose registers. this often corresponds to the size of the memory bus and possibly the address bus, but doesn't necessarily.

For example, Intel sold a version of the 386 chip called the 386SX (http://en.wikipedia.org/wiki/Intel_80386#The_i386SX_variant) that internally was a 386 with 32-bit registers, but only has a 16 bit data bus. I think that most people would consider the chip to still be a 32-bit processor instead of a 16 bit processor.

若能看破又如何 2024-10-02 08:34:03

我想我会去尝试一下。传统上我认为“大小”是指寄存器集中的宽度(位数)。在“我的”第一台计算机 DEC PDP-8/E 上,可用的单个寄存器(累加器)是 12 位宽,它是一台 12 位计算机,在 PDP-11 上,寄存器是 16 位宽,它是一个 16 位计算机。位计算机。 IBM 370 和 VAX 有 32 位寄存器,是 32 位计算机。

从 80386 开始,事情变得困难了。根据操作模式,它可以呈现为实模式 8086、保护模式 (PM) 80286 或 PM 80386。对于使用 AMD64 或 x86-64 的 64 位处理器,您可以拥有上述所有功能以及 64 位下午。那么它们是什么?它应该取决于其上运行的操作系统的基本操作模式。 Windows NT 2000、Windows XP-32、Vista-32 7-32 使处理器为 32 位。操作系统中带有“64”的处理器表示处理器是 64 位的。

至于公交车之类的。 x86 处理器上有两条物理总线地址+数据和两条逻辑总线内存+i/o。处理器上的特殊引脚决定操作是内存还是 I/O、读还是写等。在 8086/8088 上,数据和地址总线与 D0-D15/A0-A7 和 D0-D7 共享相同的引脚 A0-A15,其中位 A16-A19/A8-A19 是严格地址。在 80286 上它们是分开的,不确定 80186/80188 是否如此。 80286 有 24 条地址线和 16 条数据线。在 80386 和 80486 上,地址和数据各有 32 个。 80386SX 具有与 80286 相同的外部配置。

此后总线变得复杂。处理器内部运行速度如此之快,以至于它们或多或少地不断等待其缓存,而缓存又或多或少地不断地等待外部 RAM。为了满足高速缓存对数据的贪得无厌的需求,外部存储器开始以 64 位宽的块形式提供数据,从 Pentium 和 Pentium MMX 开始,它们都是 32 位处理器,具有 32 条地址线,但有 64 条数据线。

对于后来的处理器,地址线数量增加到 36 条,允许总可寻址外部存储器达到 64 GB。处理器内部仍然是 32 位。

在多核处理器上,对数据的渴望更加明显,因此它们可能具有多组地址和数据总线,以方便将数据塞入处理器中。台式机处理器可能有两个或三个,服务器处理器可能有三到四个。我不确定,但我相信有些已经切换到 128 位宽的数据总线。

对于现代 64 位处理器来说,同时拥有 64 条地址线是不可行的,因为这将允许内存达到 160 亿 GB,而这在今天是不可能的。有些主板允许 128 GB,这意味着处理器至少需要 37 条地址线。

正如您所看到的,地址和数据总线不再真正可用于确定处理器大小。事实上,过去 25 年(80386 模式)他们都没有这样做。

在 C 中,int 类型应该等于寄存器宽度。在 AMD64 上,情况并非如此,因为对 64 位整数的需求并不大:在大多数情况下,32 位整数就可以很好地工作。 AMD64 上 C 中指针的宽度是 64 位。

I think I'll have a go. Traditionally I think that "size" meant the width (number of bits) in the register set. On "my" first computer the DEC PDP-8/E the single register available - the accumulator - was 12 bits wide and it was a 12-bit computer, on the PDP-11 the registers were 16 bits wide and it was a 16-bit computer. IBM 370 and VAX had 32-bit registers and were 32-bit computers.

Starting with the 80386 things became difficult. Depending on operating mode it could present itself to be a real mode 8086, a protected mode (PM) 80286 or a PM 80386. With the 64-bit processors using AMD64 or x86-64 you have all of the above and also 64-bit PM. So what are they? It should depend on the basic operating mode of the OS that's running on it. Windows NT 2000, Windows XP-32, Vista-32 7-32 make the processor 32-bit. OS with "64" in them make the processor 64 bit.

As to buses and stuff. There are two physical buses on x86-processors address+data and two logical buses memory+i/o. Special pins on the processor determine if the operation is memory or i/o, read or write and so on. On the 8086/8088 the data and address buses shared the same pins A0-A15 with D0-D15/A0-A7 with D0-D7 with bits A16-A19/A8-A19 being strictly address. On the 80286 they were separate, not sure about the 80186/80188. On the 80286 there were 24 address and 16 data lines. On the 80386 and 80486 there were 32 each for address and data. The 80386SX had the same external configuration as the 80286.

After this buses get complicated. The processors run so fast internally that they are more or less constantly waiting for their caches which in turn are more or less constantly waiting on external RAM. To satisfy the caches' insatiable hunger for data external memory began delivering it in 64 bit wide chunks starting with the Pentium and Pentium MMX that are both 32 bit processors with 32 address lines but with 64 data lines.

With later processors the number of address lines were increased to 36 allowing a total addressable external memory of 64 GB. The processors remained 32-bit internally.

On multi-core processors the hunger for data is even more pronounced so they may have several sets of address and data buses to faciltiate data being crammed into the processor. Desktop processors may have two or three and server processors three to four. I'm not sure but I believe some have switched to 128 bit wide data buses.

For modern 64-bit processors it is not feasible to also have 64 address lines since that would allow memory up to 16 billion Gigabytes which is not possible today. Some motherboards allow 128 GB which means that the processor needs at least 37 address lines.

As you can see address and data buses are no longer really usable to determine processor size. They actually haven't for the last 25 (80386 modes) years.

In C the int type is supposed to be equivalent to the register width. On AMD64 it isn't because there just isn't that great a need for 64 bit ints: 32 bit ints do just nicely in most cases. The width of a pointer in C on AMD64 is 64 bits though.

坏尐絯℡ 2024-10-02 08:34:03

通常,这是指 CPU 可寻址的内存 (2^n) 字节量。通常它与数据总线相同,但硬件可能会进行多次访问来检索该数量,因此不能 100% 保证。有时它也对应于 CPU 寄存器大小,但也可能不同。

Generally this refers to the amount of the memory (2^n) bytes that is addressable by the CPU. Usually it's the same as data bus, but the hardware may do multiple accesss to retrieve that amount so is not 100% guaranteed. Sometimes it also corresponds to CPU register size, however it too can be different.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文