Tại sao không có bộ vi xử lý 256 bit hay 512 bit?


95

Trong bộ vi xử lý 8 bit, bus dữ liệu của nó bao gồm 8 dòng dữ liệu. Trong bộ vi xử lý 16 bit, bus dữ liệu của nó bao gồm 16 dòng dữ liệu, v.v.

Tại sao không có bộ vi xử lý 256 bit hay bộ vi xử lý 512 bit? Tại sao họ không chỉ đơn giản là tăng số lượng dòng dữ liệu và tạo bộ vi xử lý 256 bit hoặc bộ vi xử lý 512 bit?

Trở ngại nào ngăn cản việc tạo ra bộ vi xử lý 256 bit hoặc bộ vi xử lý 512 bit là gì?


20
Ngay cả tiếp thị không thể cứ tăng số lượng mãi mãi.
Olin Lathrop

82
Tại sao vẫn chưa có dao cạo 256 lưỡi?
Rocketmagnet

11
@OlinLathrop Kiểm tra sức mạnh tổng hợp của Gillete , với 5 lưỡi và pin!
Brendan dài

6
Câu trả lời tương tự như câu hỏi cho câu hỏi này: Chúng tôi đã có những chiếc xe 1 & 2 & 3 & 4 & 5 & 6 & 8 & 12 & 16 & 16 xi lanh. Tại sao chúng ta không có xe 32 & 64 & 128 xi lanh?
Russell McMahon

13
@Russell: Bởi vì sau đó sẽ có sự thiếu hụt toàn cầu về xi lanh.
Olin Lathrop

Câu trả lời:


110

Hãy suy nghĩ về nó. Chính xác thì bạn hình dung bộ xử lý "256 bit" là gì? Điều gì làm cho tính chất bit của bộ xử lý ở vị trí đầu tiên?

Tôi nghĩ rằng nếu không có thêm bằng cấp nào được thực hiện, thì tính chất bit của bộ xử lý đề cập đến chiều rộng ALU của nó. Đây là chiều rộng của số nhị phân mà nó có thể xử lý nguyên bản trong một thao tác. Do đó, bộ xử lý "32 bit" có thể hoạt động trực tiếp trên các giá trị rộng tới 32 bit trong các lệnh đơn. Do đó, bộ xử lý 256 bit của bạn sẽ chứa một ALU rất lớn có khả năng cộng, trừ, ORing, ANDing, v.v., các số 256 bit trong các hoạt động đơn lẻ. Tại sao bạn lại muốn điều đó? Vấn đề gì làm cho ALU lớn và đắt tiền có giá trị và phải trả, ngay cả đối với những trường hợp bộ xử lý chỉ đếm 100 lần lặp của một vòng lặp và tương tự?

Vấn đề là, bạn phải trả tiền cho ALU rộng dù bạn sử dụng nó nhiều hay chỉ một phần nhỏ khả năng của nó. Để biện minh cho ALU 256 bit, bạn phải tìm một vấn đề đủ quan trọng có thể thực sự có lợi từ việc thao tác các từ 256 bit trong các hướng dẫn duy nhất. Mặc dù bạn có thể có thể tạo ra một vài ví dụ, nhưng không có đủ vấn đề như vậy khiến các nhà sản xuất cảm thấy họ sẽ nhận được tiền lãi từ khoản đầu tư đáng kể cần thiết để sản xuất một con chip như vậy. Nếu nó có các vấn đề thích hợp nhưng quan trọng (được tài trợ tốt) có thể thực sự được hưởng lợi từ ALU rộng, thì chúng ta sẽ thấy các bộ xử lý được nhắm mục tiêu rất đắt tiền cho ứng dụng đó. Giá của chúng, tuy nhiên, sẽ ngăn chặn việc sử dụng rộng rãi bên ngoài ứng dụng hẹp mà nó được thiết kế cho. Ví dụ, nếu 256 bit tạo ra các ứng dụng mã hóa nhất định có thể cho quân đội, các bộ xử lý 256 bit chuyên dụng có giá từ 100 đến 1000 đô la mỗi cái có thể sẽ xuất hiện. Bạn sẽ không đặt một trong những thứ này vào máy nướng bánh mì, bộ nguồn hoặc thậm chí là một chiếc ô tô.

Tôi cũng nên rõ ràng rằng ALU rộng không chỉ làm cho ALU đắt hơn, mà các bộ phận khác của chip cũng vậy. ALU rộng 256 bit cũng có nghĩa là phải có đường dẫn dữ liệu rộng 256 bit. Điều đó một mình sẽ mất rất nhiều diện tích silicon. Dữ liệu đó phải đến từ một nơi nào đó và đi đâu đó, vì vậy cần phải có các thanh ghi, bộ đệm, bộ nhớ khác, v.v. để ALU rộng được sử dụng hiệu quả.

Một điểm khác là bạn có thể thực hiện bất kỳ số học chiều rộng nào trên bất kỳ bộ xử lý chiều rộng nào. Bạn có thể thêm một từ bộ nhớ 32 bit vào một từ bộ nhớ 32 bit khác trên một hướng dẫn PIC 18 trong 8, trong khi bạn có thể thực hiện nó trên cùng một kiến ​​trúc được chia tỷ lệ thành 32 bit chỉ trong 2 hướng dẫn. Vấn đề là ALU hẹp không ngăn bạn thực hiện các tính toán rộng, chỉ có các tính toán rộng sẽ mất nhiều thời gian hơn. Do đó, đây là một câu hỏi về tốc độ, không phải khả năng. Nếu bạn nhìn vào phổ của các ứng dụng cần sử dụng số chiều rộng cụ thể, bạn sẽ thấy rất ít yêu cầu từ 256 bit. Chi phí cho việc tăng tốc chỉ một vài ứng dụng có phần cứng sẽ không giúp những ứng dụng khác không đáng và không đầu tư tốt cho phát triển sản phẩm.


9
Tôi ghét phải nói nó, nhưng tôi không đồng ý ở đây. Hãy để tôi lấy một ví dụ: Kết xuất đồ họa cho các trò chơi video. Đó là một thị trường nhỏ mà bạn có thể đã nghe nói trị giá 10 tỷ đô la.
Rocketmagnet

39
@Rocket: Thứ nhất, OP được hỏi về một microcprocessor , không phải là một bộ vi xử lý đồ họa. Thứ hai, kết xuất đồ họa không yêu cầu các từ đặc biệt rộng. Nhiều hoạt động nhỏ hơn có thể được thực hiện song song, nhưng tôi sẽ không gọi song song 8 lõi CPU, mỗi lõi hoạt động trên dữ liệu 32 bit là bộ xử lý "256 bit". Bạn có đề cập đến PC lõi tứ của mình như một bộ xử lý "256 bit" chỉ vì mỗi lõi có thể hoạt động trên dữ liệu 64 bit nguyên bản không? Tôi nghĩ đó là một sự lạm dụng của thuật ngữ này và ngay cả tiếp thị của Intel dường như cũng không thể tạo ra nhiều lõi theo cách đó.
Olin Lathrop

30
@Rocket: SIMD là một loại song song khác, nhưng tôi vẫn không gọi nó là ALU rộng, chỉ là một bó ALU nhỏ chạy song song. Bạn không thể thực hiện thêm 256 bit với tất cả các vật mang, ví dụ, trên bộ xử lý SIMD như vậy. Song song không giống như ALU rộng hơn. Bạn dường như đang đi ra khỏi con đường của bạn để được trái ngược. Có thể bạn có thể tranh luận từ ngữ về những gì song song so với rộng hơn, nhưng để sử dụng các định nghĩa độc đáo và sau đó tuyên bố các cách hiểu khác là sai lầm đáng kinh ngạc chỉ là tham gia vào một cuộc thi tức giận.
Olin Lathrop

15
@Rocket: Chỉ vì CPU có thể hoạt động trên 256 bit cùng một lúc bằng cách thực hiện một loạt các hoạt động song song không biến nó thành CPU "256 bit". Điều đó có nghĩa là nó thực sự có thể hoạt động trực tiếp trên các số rộng 256 bit, điều này không thể. Như bạn đã nói, không có sự mang giữa các đơn vị ALU song song riêng biệt, điều này làm cho nó không phải là ALU 256 bit. Bạn dường như có một định nghĩa bất thường về ý nghĩa của bitness của CPU. Đó không phải là số bit mà nó có thể xử lý cùng một lúc, mà là độ rộng của một từ mà nó có thể xử lý toàn bộ.
Olin Lathrop

19
Khi tôi còn đi học, chúng tôi được dạy rằng những người làm phần mềm đã đo độ bit theo độ rộng của tập lệnh "logic" và người phần cứng đã đo độ bit theo chiều rộng của bus. Vì vậy, 8088 là bộ xử lý 16 bit cho người phần mềm và bộ xử lý 8 bit cho người phần cứng. 8086 là 16 bit cho mọi người. Tất nhiên những người tiếp thị sẽ lấy số lượng lớn nhất họ có thể tìm thấy, vì vậy hãy hy vọng họ không đọc chuỗi nhận xét này và bắt đầu tiếp thị CPU 512 bit! :-)
Đánh dấu Harrison

34

Chà, tôi không biết về 256 hoặc 512 bit, nhưng tôi đã nghe về bộ xử lý 1024 bit (tôi không thể tìm thấy nó ngay bây giờ). Từ này là VLIW , cho từ hướng dẫn rất dài . Vì vậy, đó là bus chỉ dẫn, không phải chiều rộng của bus dữ liệu. Ưu điểm là bạn có thể triển khai Parallelism Parallelism (ILP) trên quy mô lớn.

Cuộc gặp gỡ đầu tiên của tôi với ILP phải là 20 năm trước với Motorola DSP, đã có hướng dẫn thực hiện MAC (Nhân và tích hợp) trong khi di chuyển dữ liệu đến và từ bộ nhớ, để bạn có thể thực hiện MAC mới theo hướng dẫn tiếp theo, mà không lãng phí thời gian giữa hai MAC để di chuyển dữ liệu.
Ngày nay cũng có bộ điều khiển đa năng cung cấp tùy chọn này. VLIW áp dụng điều này ở quy mô cao hơn nhiều.

Vì chiều rộng bus dữ liệu của bạn sẽ không rộng bằng, bạn có thể có một số hướng dẫn cộng với hằng số trong một hướng dẫn. Lý do tại sao bus dữ liệu không theo xu hướng là vì nó khá vô dụng; một thanh ghi dữ liệu 64 bit có thể biểu thị số có 20 chữ số thập phân. Lần cuối bạn cần 20 chữ số chính xác là khi nào? Đối với hầu hết các ứng dụng 10 = .20

Đọc thêm
Kiến trúc VLIW


hầu hết các tính toán tài chính :( chạy vào vấn đề này ngay bây giờ
rất bối rối vào

Tôi nghĩ rằng x86 là CPU VLIW. ;-)
Macke

1
@MarcusLindblom Chỉ khi bằng VLIW, bạn có nghĩa là Từ Hướng dẫn Độ dài Biến. ;-)
CVn

3
@ AK4749 Trong trường hợp đó, các dự đoán của bạn có khả năng bị các ngân hàng xử lý các giao dịch của bạn xử lý bằng các quy tắc kế toán "thực". Có nghĩa là nếu bạn thực hiện một kế hoạch dựa trên các quy tắc đó, nó sẽ không mang lại kết quả như mong đợi vì các ngân hàng thực sự sẽ sử dụng các quy tắc kế toán thực sự, chứ không phải độ chính xác nano-cent. Và tất nhiên vì thị trường không chắc chắn. Vì vậy, nếu lỗi 1 xu khi bắt đầu gây ra lỗi 1 nghìn tỷ đô la ở đầu ra, thì 1 nghìn tỷ đô la đó chỉ là hiệu ứng mô phỏng, không phải là thứ mà khách hàng của bạn nên sử dụng để lập kế hoạch.
Photon

1
Tất nhiên, họ sẽ không bao giờ sử dụng dự đoán kéo dài hàng thập kỷ làm cơ sở cho các quyết định hiện tại, ngay cả tôi với tư cách là một lập trình viên sẽ không quá ngu ngốc. Tuy nhiên, (và rõ ràng, chúng tôi đã giải quyết vấn đề lỗi khác nhau để nó không tồn tại) các khách hàng lớn nhất thực tế yêu cầu các loại khả năng này cho bất kỳ mục đích bất chính nào mà họ chọn không tiết lộ cho nhà cung cấp của họ. Ngoài ra, đã làm việc trong không gian tài chính trong một vài năm, tôi có thể nói với bạn rằng các công ty tài chính thực sự sử dụng các phép tính chính xác cao hơn (1/2)
rất bối rối vào

28

"Nhân chứng" của bộ vi xử lý thường được định nghĩa theo kích thước của các thanh ghi mục đích chung. Kích thước xác định số lượng lớn bộ xử lý có thể xử lý nguyên bản và dung lượng bộ nhớ có thể truy cập. Các số 64 bit là đủ cho hầu hết mọi thuật toán và dung lượng bộ nhớ có thể đánh địa chỉ (16 triệu terabyte) là đủ cho một thời gian tới. Đơn giản là không có bất kỳ lợi thế nào để tăng kích thước của các thanh ghi mục đích chung. Mặt khác, diện tích của các đơn vị logic số học (ALU) được sử dụng để thực hiện các hoạt động trên các thanh ghi tỷ lệ với bình phương của số lượng bit. Một ALU 256 bit sẽ lớn hơn 16 lần và chậm hơn đáng kể.

Mặt khác, có một điểm trong việc mở rộng bộ xử lý để có thể thực hiện nhiều thao tác nhỏ hơn cùng một lúc. Trên thực tế, bộ xử lý Sandy Bridge và Ivy Bridge của Intel làm được điều đó, chúng có các thanh ghi SIMD 256 bit và có thể thực hiện hai thao tác số học và một thao tác bộ nhớ cho mỗi chu kỳ trên chúng. Vì vậy, người ta có thể biện minh cho việc gọi chúng là bộ xử lý 256 bit, hoặc thậm chí 768bit, nếu một người là một nhà tiếp thị lén lút muốn bẻ cong các thuật ngữ được sử dụng thường xuyên.


Đó là một kiến ​​trúc ấn tượng.
Trygve Laugstøl

6
+1 cho "nhà tiếp thị lén lút muốn bẻ cong các thuật ngữ được sử dụng thường xuyên."
Dan Neely

14

Thứ nhất, kích thước bit của bộ xử lý thường được xác định bởi kiến ​​trúc trừu tượng hiển thị cho người lập trình ngôn ngữ máy, chứ không phải bởi các chi tiết triển khai như kích thước của bus dữ liệu.

Ví dụ, Motorola 68000 là bộ xử lý 32 bit. Nó có các thanh ghi dữ liệu 32 bit và các thanh ghi địa chỉ 32 bit. Bây giờ, phiên bản đầu tiên của gia đình kiến ​​trúc đó chỉ lộ ra 24 bit dòng địa chỉ. Hơn nữa, các biến thể tồn tại chỉ có một bus dữ liệu 8 bit (do đó các hoạt động bộ nhớ 32 bit được bộ xử lý thực hiện dưới dạng nhiều chu kỳ truy cập).

Bây giờ về câu hỏi, tại sao không chuyển đến 256 và 512. Bộ xử lý "tự nhiên" thao tác một số loại dữ liệu, vì vậy thật hữu ích khi xem xét riêng 256 hoặc 512 bit cho từng loại dữ liệu này. Chúng tôi có các số nguyên, con trỏ và các loại dấu phẩy động.

  1. Số nguyên: Các chương trình nhận được rất nhiều số dặm trong số nguyên 32 và 64 bit. Nếu 64 bit là một giới hạn, thì cách khắc phục đó là có các số nguyên bignum được triển khai bằng phần mềm. Các ngôn ngữ cấp cao có thể thực hiện các loại số nguyên sao cho các thao tác chuyển đổi trơn tru giữa "fixnums" và "bignums". Tất nhiên, bạn thực hiện một cú đánh hiệu suất với bignums, nhưng bạn phải xem xét điều đó trong bức tranh lớn: có bao nhiêu hoạt động trong một chương trình là hoạt động bignum. Các số 256 hoặc 512 bit không loại bỏ sự cần thiết của bignums, chúng chỉ tăng khoảng không trước khi chúng ta phải chuyển sang bignums. Nếu bạn muốn thao tác các khóa công khai 2048 bit, số nguyên 512 bit sẽ không thực hiện được (nhưng một bignum có chữ số 512 bit có thể nhanh).

  2. Con trỏ: Con trỏ rộng hơn cho phép hai thứ: không gian địa chỉ rộng hơn và dữ liệu meta bổ sung được lưu trữ trong một con trỏ. Không gian địa chỉ là ảo những ngày này và vì vậy chúng có thể phát triển ngay cả khi ký ức không phát triển. Người ta đã đề xuất rằng nếu bạn có con trỏ 128 bit, không gian địa chỉ rộng đến mức bạn có thể đặt tất cả các quy trình không gian người dùng của một hệ điều hành và kernel, tại các vị trí ngẫu nhiên trong một không gian không được bảo vệ và chúng không thể xảy ra va chạm. Thay vì chỉ đơn giản là tạo một không gian địa chỉ lớn hơn, con trỏ béo hơn có thể được sử dụng để mang các bit không phải là bit địa chỉ, chẳng hạn như thông tin về đối tượng tham chiếu (loại, kích thước và thông tin khác) hoặc thông tin liên quan đến bảo mật. Có lẽ có một số "độ béo tối ưu" cho loại điều này, và nếu tôi đoán, tôi vẫn sẽ giới hạn ở mức 128 bit. Nó không' T dường như có ý nghĩa để đi đến con trỏ 256 bit, đừng bận tâm đến 512. Con trỏ béo hơn có một nhược điểm: chúng làm mờ tất cả các cấu trúc dữ liệu có chứa con trỏ. Và, nói chung, bạn muốn con trỏ có cùng kích thước, nếu không, bạn cần các biến chứng trong kiến ​​trúc tập lệnh (như phân đoạn bộ nhớ), theo đó bạn có con trỏ đầy đủ (mô tả phân đoạn và bù) hoặc chỉ con trỏ cục bộ (bù trong một số phân đoạn đã hiểu) .

  3. Các loại dấu phẩy động: Nhiều bit hơn trong các số dấu phẩy động có nghĩa là độ chính xác cao hơn. Tôi muốn nói rằng các loại dấu phẩy động có lợi nhất từ ​​một biểu diễn rộng hơn. Kiểu nổi 256 hoặc 512 bit sẽ cải thiện tính ổn định của mã số và chất lượng của các phép tính khoa học đòi hỏi nhiều lần lặp và tích lũy lỗi trên đường đi. Độ chính xác trong dấu phẩy động không giống với độ chính xác trong các số nguyên: chúng ta không thể tách loại dấu phẩy động thành các phạm vi như fixnums so với bignums. Độ chính xác cao hơn ở điểm nổi ảnh hưởng đến chất lượng của tất cả các số không chính xác, cho dù chúng gần bằng 0 hoặc có cường độ lớn. Nhiều bit hơn trong số mũ của dấu phẩy động cũng có thể mở rộng đáng kể phạm vi số dấu phẩy động và nhanh hơn nhiều so với việc thêm bit vào số nguyên bignum.

Vì những lý do này, tôi nghi ngờ rằng xu hướng tương lai chiếm ưu thế sẽ là tăng độ rộng của các số dấu phẩy động phần cứng, không nhất thiết phải theo sau là tăng độ rộng của con trỏ và số nguyên.

Hãy nhớ rằng các số dấu phẩy động đã đi trước các loại khác trong quá khứ. Ví dụ, trong một thời gian, chúng tôi có ưu thế là bộ xử lý 32 bit hỗ trợ các phao đôi 64 bit của IEEE. Điều này là do mặc dù bạn có thể làm được rất nhiều với con trỏ và số nguyên 32 bit, nhưng số float 32 bit rất hạn chế cho bất kỳ công việc số nghiêm trọng nào.

Một tính năng rất hữu ích sẽ rất hay khi thấy xuất hiện trong các biểu diễn dấu phẩy động sẽ là một vài bit dự phòng cho thẻ loại. Việc triển khai các kiểu dấu phẩy động trong các ngôn ngữ cấp cao, động (trong đó các đối tượng có kiểu, nhưng vị trí lưu trữ giữ các giá trị của bất kỳ loại nào) là một cuộc đấu tranh vì trong khi các bit dự phòng có thể được tìm thấy trong các con trỏ và các đối tượng giống như số nguyên để đặt các phần của một xác định thẻ loại, điều này rất khó thực hiện với các số dấu phẩy động. Vì vậy, những gì thường kết thúc xảy ra là số dấu phẩy động được phân bổ heap. Một số lược đồ đánh cắp các bit từ lớp phủ, do đó, các kiểu dấu phẩy động trong ngôn ngữ đó sẽ mất độ chính xác so với các float trong các ngôn ngữ khác trên cùng một máy.


Mô tả hay. Nhân tiện, bộ xử lý x86 thông thường đã có điểm nổi 80 bit trong một thời gian dài, vì đơn vị điểm nổi phần cứng đầu tiên cho chúng nếu tôi nhớ đúng. 80 bit là nội bộ của FPU, sau đó thường xuất 32 hoặc 64 bit.
Olin Lathrop

Về mặt kỹ thuật, đã được thực hiện. Google "nan Boxing" hoặc "ni cô đấm bốc". Điều hứa hẹn hơn là các loại thẻ phần cứng trong ARM 64 bit, nhưng điều đó sẽ không sớm xảy ra.
Whitequark

3
Có thể truy cập trực tiếp phiên bản 80. Quay trở lại những năm 90 khi tôi đang học lập trình trong TurboPascal, có kiểu float 80bit.
Dan Neely

@DanNeely: Đôi khi tôi đã nghĩ rằng các bộ xử lý sẽ được hưởng lợi từ các loại dấu phẩy động tọa độ 3d, kết hợp ba số 80 bit thành một khối 256 bit hoặc ba số 42 bit thành một khối 128 bit hoặc ba số Các số 21 bit thành một đoạn 64 bit. Tôi tự hỏi làm thế nào một điều khó khăn như vậy sẽ được thực hiện, và nó có thể hữu ích như thế nào?
supercat

@supercat GPGU Wikipedia: Hầu hết các hoạt động trên GPU [NVidia] hoạt động theo kiểu véc tơ: một thao tác có thể được thực hiện trên tối đa bốn giá trị cùng một lúc. Chẳng hạn, nếu một màu <R1, G1, B1> được điều chế bởi một màu khác <R2, G2, B2>, GPU có thể tạo ra màu kết quả <R1 * R2, G1 * G2, B1 * B2> trong một hoạt động.
Kaz

9

Nó không thực sự giúp bạn làm bất cứ điều gì hữu ích. Các số 64 bit cung cấp cho bạn đủ độ chính xác cho hầu hết tất cả các mục đích (mặc dù các hệ thống của Intel có điểm nổi 80 bit), nhưng các dòng bổ sung làm tăng chi phí và mức tiêu thụ điện năng trong khi có tác động tiêu cực nhỏ đến tốc độ xung nhịp.

Trong lịch sử, CPU sử dụng số bit tối thiểu có ý nghĩa thực tế cho mục đích dự định của chúng. Với những tiến bộ trong công nghệ, xe buýt rộng hơn và ALU trở nên khả thi, do đó tăng kích thước xe buýt để phục vụ khả năng ứng dụng rộng hơn:

  • 4 bit: đủ cho một chữ số, do đó thực tế cho máy tính (kiểu BCD), máy tính tiền, v.v. (vốn là một khu vực khá hạn chế)
  • 8 bit: đủ cho một ký tự (ASCII), thực tế cho các hệ thống xử lý văn bản (là vùng rộng RẤT), cũng cho âm thanh chất lượng thấp
  • 16 bit: khi 16-bit phổ biến 2 ^ 16 địa chỉ bộ nhớ là số lượng hợp lý (ít nhất là hợp lý hơn nhiều so với 2 ^ 8 hoặc 2 ^ 32). 16 bit mang lại chất lượng âm thanh khá chấp nhận được và hầu hết các bộ chuyển đổi A / D mang lại ít hơn 16 bit kết quả, do đó việc tính toán với các giá trị như vậy trong 16 bit có ý nghĩa
  • 32 bit: 32 bit phù hợp với độ chính xác của hầu hết (nhưng không phải tất cả) số lượng do con người đo được, và trừ khi bạn đang xử lý cơ sở dữ liệu lớn, 2 ^ 32 địa chỉ là đủ cho hầu hết các mục đích thực tế.
  • 64 bit: hiện có> 2 ^ 32 byte bộ nhớ.
  • 128 bit: tại thời điểm này ít lợi thế hơn 32, ngoại trừ trong mật mã. Khi nào chúng ta mong đợi nhiều hơn 2 ^ 64 byte trên một đĩa cứng? có lẽ không sớm

1
Cốt 640K nên là đủ cho bất cứ ai. Cấm -Bill Gates (1981)
jippie

6
@jippie - Gates chưa bao giờ thực sự nói điều đó.
Rocketmagnet

1
Trên thực tế, hầu hết các CPU 8 bit có thể giải quyết 2 ^ 16 byte bộ nhớ và 16 bitter 2 ^ 32, 80386 (32 bit) về mặt lý thuyết cũng có thể giải quyết 2 ^ 64 byte (4GB) bộ nhớ có thể khá vô dụng trong những ngày đó dù sao đi nữa ...
Axel

1
20

3
@Michael - đó là của mọi thời đại, và tôi đã nhìn thấy nó trong suốt sự nghiệp của mình: có rất ít nhà quản lý sản phẩm thực sự có tầm nhìn ngoài kia. Giai thoại: đầu những năm 1970, tại một bài giảng của Robert Noyce về tương lai của bộ vi xử lý, ông dự đoán sự thu nhỏ hiện tại và một người nào đó trong khán giả nói: "Chết tiệt, tôi sẽ không muốn mất toàn bộ máy tính trong một cái thùng trên sàn." Sau đó, Noyce trả lời một cách khinh bỉ: "Bạn hoàn toàn không hiểu điều đó. Bạn không quan tâm đến cái mà bạn đã mất; bạn sẽ có hàng ngàn người khác". Đó là đầu những năm 1970. Robert Noyce là một người có tầm nhìn.
stevenvh

9

Trên thực tế, các bộ xử lý như vậy tồn tại và phổ biến, tùy thuộc vào cách bạn xác định độ bit. Bạn gần như chắc chắn đang sử dụng một cái bây giờ. Như Olin đã giải thích, không có nhiều sử dụng cho các số 256 bit, nhưng còn số 4 x 32 bit thì sao? Điều gì xảy ra nếu ALU có thể thêm 4 cặp số 32 bit cùng một lúc. Những ALU như vậy (mà tôi biết) lần đầu tiên được triển khai trong siêu máy tính vector vào những năm 1970. Lần đầu tiên tôi sở hữu một chiếc máy tính như vậy là khi tôi có một trong những chiếc Pentium của Intel có MMX.

Anh chàng MMX Intel

Nhớ những kẻ đó không?

Các chip MMX có một Lệnh đơn - Tập lệnh nhiều dữ liệu ( SIMD ), cho phép bạn thêm cặp 1 × 64 bit, cặp 2 × 32 bit, cặp 4 × 16 bit hoặc cặp 8 × 8 bit.

Nhưng đó không là gì cả. Một card đồ họa hiện đại có GPU (trước đây là viết tắt của Bộ xử lý đồ họa, nhưng bây giờ là viết tắt của Bộ xử lý chung). Đây thường là các triển khai SIMD rộng, có khả năng phân nhánh, tải và lưu trữ trên 128 hoặc 256 bit cùng một lúc. Kiến trúc vi mô hình nguyên mẫu Larrabee của Intel bao gồm hơn hai thanh ghi SIMD 512 bit trên mỗi lõi của nó.

GPU SIMD

Xin lưu ý rằng SIMD không được nhầm lẫn với đa lõi. Mỗi lõi của CPU sẽ có ALU rộng riêng có khả năng thêm một bộ số nguyên.


1
"Cặp 1 × 16 bit, cặp 2 × 32 bit, cặp 4 × 16 bit hoặc cặp 8 × 8 bit" Bạn có chắc bạn đã có phần đó đúng không?
một CVn

4
Thoạt nhìn trông giống như một đĩa đơn Kraft có logo Intel trên đó
Chris Laplante

4
Biến 4x32 bit vẫn chỉ là 32 bit. Số bit là số nguyên riêng tối đa mà ALU có thể hoạt động. Làm song song nhiều lần không làm tăng chiều rộng bit. -1
Sói Connor

3

Bởi vì chúng tôi chưa cần nó.

Thông thường, độ bit (mà tôi định nghĩa là số bit trong thanh ghi) sẽ dịch trực tiếp ít nhiều vào lượng bộ nhớ có thể định địa chỉ. Điều này tất nhiên được đơn giản hóa, vì tùy thuộc vào bộ xử lý, có thể có các thanh ghi có độ dài gấp 2 lần độ bit, hoặc tồn tại các kỹ thuật để tránh các giới hạn bộ nhớ đó (có ai nhớ lập trình trên các cửa sổ 16 bit không?).


3

"Tại sao họ không chỉ đơn giản là tăng số lượng dòng dữ liệu và tạo 256-bit"

Trên thực tế, tất cả các bộ xử lý Intel phù hợp với Ổ cắm LGA-2011 đều có 256 chân dữ liệu, kết nối với 256 dòng dữ liệu trên bo mạch chủ dẫn đến DRAM. Tôi sẽ hơi ngạc nhiên nếu máy tính xách tay hoặc máy tính để bàn gần đây nhất bạn sử dụng không có ít nhất 256 dòng dữ liệu. Tôi có thể hỏi nơi bạn có ý tưởng sai lầm này rằng họ "không ... chỉ đơn giản là tăng số lượng dòng dữ liệu"?

Bảng dữ liệu ổ cắm LGA-2011 , phần 6.1, chỉ ra rằng các CPU này có 256 chân dữ liệu và 76 chân địa chỉ (địa chỉ ngân hàng + địa chỉ bộ nhớ).


-1

bởi vì không có ứng dụng nào cần hoặc có khả năng biểu diễn dữ liệu bằng cách sử dụng hơn 128 bit cùng một lúc.

và bạn biết đấy, bộ xử lý đa phương tiện và card đồ họa sẽ xuất hiện trước các cpu của bo mạch chính, chỉ vì với ảnh / video, nên sử dụng độ dài dữ liệu lớn như vậy để xử lý cùng một lúc.


-4

Một hệ thống máy tính có nghĩa là một máy tính, đòi hỏi một số đầu vào và đưa ra một số đầu ra. Chúng tôi phải đáp ứng máy tính trong các dòng này, do đó các nhà phát triển đã đạt được điểm chuẩn bằng cách có 3 Bus, cụ thể là Bus địa chỉ, Bus dữ liệu và Bus điều khiển. 1) Bus địa chỉ tìm nạp / Chọn một địa chỉ cụ thể trong bộ nhớ, cho các hoạt động đọc / ghi. 2) Bus dữ liệu sau đó tìm nạp dữ liệu Trình bày dữ liệu này đến / từ bộ xử lý và bộ nhớ cho mục đích xử lý / lưu trữ. 3) Bus điều khiển Tạo giao thức điều khiển giao diện và yêu cầu hệ thống tôn trọng nó.

Chúng được yêu cầu để thực hiện một số tính toán hữu ích cho người dùng / máy chủ / máy khách. Nói chung, Hiệu suất (Tốc độ hoàn thành nhiệm vụ, ít trục trặc, v.v.) phụ thuộc vào việc xóa các cổ chai trong hệ thống. tức là nếu CPU có thể xử lý với tốc độ cao hơn nhiều so với tốc độ truyền từ ổ đĩa cứng, thì cổ chai xảy ra ở ổ cứng. Tương tự, chúng ta cần có Tốc độ xử lý phù hợp cho Tốc độ dữ liệu và Độ rộng mã cụ thể.

Từ khi bắt đầu, vì các lý do khác nhau như Độ phức tạp của H / W, Chi phí, Yêu cầu, Thuật toán hiệu quả và lý do chính Phạm vi thị trường là những cản trở chính cho việc sản xuất Độ rộng bus dữ liệu cao, như được đề cập bởi Câu hỏi máy chủ, nói 256 bit hoặc 512 bit. Những điều này là có thể! Nhưng yêu cầu vẫn chưa được đưa ra, phạm vi thị trường vẫn chưa thể nhìn thấy với nhu cầu ngày nay và không có sự hỗ trợ của Phần mềm khen ngợi.

Bộ xử lý 256 bit biểu thị độ rộng của Data Bus, bộ xử lý cụ thể đó có thể xử lý hoặc ALU có thể xử lý trong một Thực thi duy nhất. Chúng tôi đã bắt đầu hình thành 4 bit, sau đó là 8,16,32 và hiện tại là 64 và thậm chí 128 bit là các Sản phẩm Phạm vi Thị trường hiện tại.

Vì vậy, trước khi đặt những câu hỏi này, bạn phải luôn luôn nhìn thấy Nhu cầu của thị trường và Phạm vi của nó, Trong lịch sử, đó là cách duy nhất để chuyển tiếp để hiểu cách sống. Nếu bạn không đủ khả năng thì làm sao bạn mua được? và nếu bạn không thể mua nó, nhà sản xuất có thể sản xuất như thế nào? và nếu anh ta không thể sản xuất, thì sản phẩm đó không tồn tại !!


6
Danh từ viết hoa làm cho điều này khó đọc.
pjc50

hmm, vâng tôi cần phải bắt đầu làm điều đó
Sri Krishna

@ pjc50 Có lẽ anh ấy đến từ Đức? Đợi đã, "Hỏi" và "Mua" cũng được viết hoa, có thể không ...
Alex
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.