Tại sao RAM không được đưa vào chip CPU?


55

CPU hiện đại rất nhanh so với tất cả những thứ bên ngoài, bao gồm cả bộ nhớ (RAM).

Có thể hiểu được, vì tần số xung nhịp CPU đã đạt đến điểm cần vài tín hiệu đồng hồ cho tín hiệu điện chỉ đơn giản là chạy từ CPU qua bus đến chip RAM và quay lại.

Nó cũng làm phức tạp cuộc sống ở nhiều cấp độ: hệ thống phân cấp bộ đệm đa cấp được xây dựng để phân phối dữ liệu gần hơn với CPU, do đó đòi hỏi logic đồng bộ hóa phức tạp trong chip. Các chương trình phải được viết theo cách thân thiện với bộ đệm để tránh chu kỳ chờ trong khi dữ liệu được tìm nạp.

Nhiều vấn đề trong số này có thể tránh được nếu một lượng RAM đáng kể được đặt trực tiếp trên chip CPU. Nó không phải sắp xếp độc quyền: có thể đặt 1-4 GB trên chip, tùy thuộc vào loại của nó và cho phép bộ nhớ bổ sung được cài đặt riêng.

Tôi chắc chắn có những lý do chính đáng để Intel, AMD và những thứ tương tự không làm điều này. Những lý do này là gì? Có phải là không có chỗ để dự phòng trên chip?


29
Bộ nhớ cache là RAM. Không gian & chân trên khuôn là ở mức cao.
Ngày

2
@ Copper.hat Cache là RAM, nhưng kích thước bộ đệm là một phần nhỏ của RAM được cài đặt (thông thường, chúng ta đang nói về phạm vi MBytes so với Gbytes). Tôi tự hỏi tại sao không đặt 1 GB vào chip CPU.
nhím nhỏ hơn

5
Nói chung, nó được tối ưu hóa cho một số hỗn hợp hướng dẫn / luồng dữ liệu. Ngoài ra, không phải tất cả dữ liệu từ đến / từ RAM đều đi qua CPU.
Ngày

1
Càng đơn giản, một cái chết càng rẻ. Nó cũng có nghĩa là bạn có thể sử dụng các kích cỡ quy trình và phương pháp xử lý khác nhau.
Geek

@LesserHedgeoose Có một giới hạn về tốc độ nhấn bộ nhớ cache của bạn có thể nói chung, vì vậy việc thêm nhiều bộ đệm không thực sự giúp ích gì cả. Ngoài ra, rất nhiều CPU thực sự đã nhúng DRAM ngay bây giờ, đặc biệt là trong không gian di động / nhúng (ví dụ như nhiều SoC dựa trên ARM).
lông mịn

Câu trả lời:


79

Haswell của Intel (hoặc ít nhất là những sản phẩm kết hợp GPU Iris Pro 5200) và POWER7 và POWER8 của IBM đều bao gồm DRAM nhúng, "eDRAM".

Một vấn đề quan trọng đã khiến eDRAM không phổ biến cho đến gần đây là quy trình chế tạo DRAM vốn không tương thích với các quy trình logic, do đó phải đưa vào các bước bổ sung (làm tăng chi phí và giảm năng suất) khi mong muốn eDRAM. Vì vậy, phải có một lý do thuyết phục cho việc muốn kết hợp nó để bù đắp cho nhược điểm kinh tế này. Ngoài ra, DRAM có thể được đặt trên một khuôn riêng biệt được sản xuất độc lập, nhưng sau đó được tích hợp vào cùng một gói với CPU. Điều này cung cấp hầu hết các lợi ích của địa phương mà không gặp khó khăn trong việc sản xuất cả hai theo cách tích hợp thực sự.

Một vấn đề khác là DRAM không giống như SRAM ở chỗ nó không lưu trữ nội dung của nó vô thời hạn trong khi nguồn được áp dụng, và đọc nó cũng phá hủy dữ liệu được lưu trữ, phải được ghi lại sau đó. Do đó, nó phải được làm mới định kỳ và sau mỗi lần đọc. Và, bởi vì một tế bào DRAM dựa trên một tụ điện, việc sạc hoặc xả nó đủ để rò rỉ sẽ không làm hỏng giá trị của nó trước khi làm mới tiếp theo mất một khoảng thời gian hữu hạn. Thời gian sạc này không bắt buộc với SRAM, đây chỉ là một chốt; do đó, nó có thể được chạy ở cùng tốc độ với CPU, trong khi DRAM bị giới hạn ở khoảng 1 GHz trong khi vẫn duy trì mức tiêu thụ năng lượng hợp lý. Điều này khiến DRAM có độ trễ vốn có cao hơn SRAM, điều này khiến nó không đáng để sử dụng cho tất cả trừ bộ nhớ cache lớn nhất, trong đó tỷ lệ bỏ lỡ giảm sẽ được đền đáp.

Ngoài ra, liên quan đến độ trễ, một phần lớn của khó khăn là tín hiệu khoảng cách vật lý phải truyền đi. Ánh sáng chỉ có thể di chuyển 10 cm trong chu kỳ xung nhịp của CPU 3 GHz. Tất nhiên, các tín hiệu không truyền theo đường thẳng qua khuôn và chúng cũng không truyền đi ở bất cứ thứ gì gần với tốc độ ánh sáng do nhu cầu đệm và quạt ra, gây ra sự chậm trễ lan truyền. Vì vậy, khoảng cách tối đa mà bộ nhớ có thể cách xa CPU để duy trì độ trễ 1 xung nhịp tối đa là vài cm, giới hạn dung lượng bộ nhớ có thể chứa trong khu vực khả dụng. Bộ xử lý Nehalem của Intel thực sự đã giảm dung lượng của bộ đệm L2 so với Penryn một phần để cải thiện độ trễ của nó, dẫn đến hiệu suất cao hơn. * Nếu chúng ta không quan tâm quá nhiều đến độ trễ, thì không có lý do gì để đặt bộ nhớ vào gói,

Cũng cần lưu ý rằng tỷ lệ nhấn bộ nhớ cache rất cao đối với hầu hết các khối lượng công việc: cao hơn 90% trong hầu hết các trường hợp thực tế và không phổ biến thậm chí trên 99%. Vì vậy, lợi ích của việc bao gồm những ký ức lớn hơn khi chết thường bị giới hạn trong việc giảm tác động của vài phần trăm sai sót này. Các bộ xử lý dành cho thị trường máy chủ doanh nghiệp (như POWER) thường có bộ nhớ cache lớn và có thể bao gồm cả eDRAM vì nó rất hữu ích để phù hợp với các nhóm công việc lớn của nhiều khối lượng công việc của doanh nghiệp. Haswell có nó để hỗ trợ GPU, vì kết cấu rất lớn và không thể chứa trong bộ đệm. Đây là các trường hợp sử dụng cho eDRAM ngày nay, không phải khối lượng công việc của máy tính để bàn hoặc HPC điển hình, được phân phối rất tốt bởi các hệ thống phân cấp bộ đệm thông thường.

Để giải quyết một số vấn đề nêu trong ý kiến:

Các bộ đệm eDRAM này không thể được sử dụng thay cho bộ nhớ chính vì chúng được thiết kế dưới dạng bộ đệm nạn nhân L4. Điều này có nghĩa là chúng dễ bay hơi và có địa chỉ nội dung hiệu quả, do đó dữ liệu được lưu trữ trong chúng không được coi là cư trú ở bất kỳ vị trí cụ thể nào và có thể bị loại bỏ bất cứ lúc nào. Các thuộc tính này rất khó để điều hòa với yêu cầu RAM phải được ánh xạ trực tiếp và bền bỉ, nhưng để thay đổi chúng sẽ khiến cho bộ nhớ cache trở nên vô dụng cho mục đích của chúng. Tất nhiên có thể nhúng các bộ nhớ của một thiết kế thông thường hơn, vì nó được thực hiện trong các bộ vi điều khiển, nhưng điều này không thể chứng minh được đối với các hệ thống có bộ nhớ lớn vì độ trễ thấp không có lợi trong bộ nhớ chính vì nó nằm trong bộ nhớ cache, do đó mở rộng hoặc thêm bộ đệm là một đề xuất đáng giá hơn.

Đối với khả năng lưu trữ rất lớn với dung lượng theo thứ tự gigabyte, bộ đệm chỉ được yêu cầu tối đa là kích thước của bộ làm việc cho ứng dụng. Các ứng dụng HPC có thể xử lý các bộ dữ liệu terabyte, nhưng chúng có địa phương không gian và thời gian tốt, và do đó, bộ công việc của chúng thường không lớn lắm. Các ứng dụng có bộ công việc lớn là ví dụ cơ sở dữ liệu và phần mềm ERP, nhưng chỉ có một thị trường hạn chế cho các bộ xử lý được tối ưu hóa cho loại khối lượng công việc này. Trừ khi phần mềm thực sự cần nó, việc thêm bộ đệm sẽ mang lại lợi nhuận giảm rất nhanh. Gần đây, chúng tôi đã thấy các bộ xử lý đạt được các hướng dẫn tìm nạp trước, do đó, bộ nhớ cache có thể được sử dụng hiệu quả hơn: người ta có thể sử dụng các hướng dẫn này để tránh bỏ lỡ gây ra bởi sự khó đoán của các mẫu truy cập bộ nhớ, thay vì kích thước tuyệt đối của bộ làm việc,

* Sự cải thiện về độ trễ không chỉ do kích thước vật lý nhỏ hơn của bộ đệm, mà còn do tính kết hợp đã giảm. Có nhiều thay đổi đáng kể đối với toàn bộ hệ thống phân cấp bộ đệm trong Nehalem vì một số lý do khác nhau, không phải tất cả đều tập trung vào việc cải thiện hiệu suất. Vì vậy, trong khi đây là một ví dụ, nó không phải là một tài khoản hoàn chỉnh.


1
Giải thích rõ ràng ,, @Oleksandr R. Nói tóm lại, có vẻ như có một thứ gì đó giống như "sự không khớp trở kháng" giữa CPU và DRAM, khiến cho việc ghép hai phần trở nên khó khăn.
nhím nhỏ hơn

3
Và tất nhiên, SRAM vẫn còn khá lớn - ngay cả bộ nhớ cache nhỏ (so với RAM) chiếm khoảng một nửa diện tích của các CPU hiện đại (tốt, ngoại trừ CPU có GPU tích hợp: D).
Luaan

2
Tôi tự hỏi nếu có một cách để chạy mà không có bộ nhớ chính. 128 MB sẽ rất nhiều để chạy bản phân phối Linux được làm mỏng (hoặc phiên bản Windows cũ).
dùng253751

Nó được gọi là 'GPU-on-die', không phải 'GPU-on-pack'.
AStopher

4
@cybermonkey: Trên thực tế, các hướng dẫn được tìm nạp từ bộ đệm L1, không phải bộ nhớ chính. Sẽ rất tệ khi lấy chúng từ bộ nhớ chính - thời gian chu kỳ 60 ns hoặc lâu hơn, điều này giới hạn CPU của bạn ở mức 16 Mhz cho thiết kế lõi đơn.
MSalters

17

Những lý do chính khiến bộ nhớ lớn hơn (GB DRAM) không được bao gồm trong CPU chết chủ yếu là về chi phí. Không gian chết CPU đắt hơn đáng kể do quá trình sản xuất cần thiết để tạo ra các tính năng rất nhỏ. Cũng có thể không thể sản xuất hai cái trên cùng một khuôn, mặc dù tôi không biết đủ về các chi tiết để đưa ra bất kỳ câu trả lời dứt khoát nào ở đây.

Hãy đánh giá tính khả thi của việc đưa một lượng lớn DRAM trực tiếp vào khuôn CPU.

Để so sánh tỷ lệ, một CPU chết hiện đại có thể là ~ 180 mm (kích thước xấp xỉ của Intel Haswell chết). Tôi không có bất kỳ số liệu chính xác nào về kích thước chết CPU DRAM, nhưng giả sử rằng 1GB DRAM truyền thống mất 140mm (tính từ kích thước DRAM GPU). Với xấp xỉ đơn hàng đầu tiên, bạn đang tăng gấp đôi kích thước chết của CPU, điều đó có nghĩa là ít nhất gấp đôi chi phí của CPU và có thể nhiều hơn chỉ với 1GB DRAM cho cùng một lần chết ... Tôi không phải trả vài trăm đô la chỉ để nhận được 1GB DRAM và tôi không nghĩ ai sẽ làm thế.222

Tuy nhiên, ý tưởng gắn bộ nhớ gần CPU không hoàn toàn là một nguyên nhân bị mất. Đây có thể là nơi bộ nhớ sẽ di chuyển trong tương lai vì thực tế là tốc độ ánh sáng là hữu hạn và chỉ có thể giao tiếp quá nhanh trong một khoảng cách nhất định.

Các kỹ thuật thực tế để di chuyển bộ nhớ gần CPU hơn (lưu ý rằng chúng cũng có sự đánh đổi với các kỹ thuật truyền thống):

  1. Chồng chúng lên trên CPU. Điều này đã được thực hiện trên Raspberry Pi và là một phần của tiêu chuẩn bộ nhớ Wide I / O. Bộ nhớ vẫn là một khuôn riêng biệt được sản xuất trên một quy trình riêng biệt. Tuy nhiên, điều này có vấn đề là bất kỳ nhiệt nào tản ra trong CPU đều phải đi qua bộ nhớ trước khi chạm tới tản nhiệt. Điều này có nghĩa là nó sẽ không hoạt động đối với các bộ xử lý công suất cao và tại sao các ứng dụng chính cho công nghệ này lại nằm trong các bộ xử lý di động / các ứng dụng nhúng khác mà CPU của bạn không tiêu thụ nhiều hàng chục hoặc hàng trăm watt.

  2. Dán chúng thật gần bằng chất nền có chi phí thấp hơn. Đây là cách HBM được thiết kế để hoạt động, với một chiếc xe buýt rất lớn được sản xuất trên một "bộ chuyển đổi" chi phí thấp hơn và là hướng bộ nhớ GPU cao cấp đang đi vì băng thông cao hơn đáng kể. Các chip bộ nhớ và bộ điều khiển tất cả vẫn được sản xuất trên các khuôn khác nhau từ bộ xử lý thực tế.


5
Tôi hy vọng sản lượng sẽ giảm khi bạn cố gắng và nhồi nhét thêm hàng tỷ bóng bán dẫn vào một lần chết lớn - xác suất xảy ra lỗi hoặc sai sót xảy ra với mọi thiết bị bổ sung. Nếu bạn chia hệ thống thành nhiều phần nhỏ hơn, khả năng xảy ra lỗi trên bất kỳ phần nào sẽ giảm xuống một cách ồ ạt và chi phí loại bỏ một phần bị lỗi cũng thấp hơn. Tôi tưởng tượng một cái chết rất lớn cũng sẽ khó chế tạo hơn, tất cả những thứ khác đều bằng nhau.
John U

4
@ John John Thật khó để nói giá sẽ tăng như thế nào vì tỷ lệ khiếm khuyết thực tế là một bí mật thương mại. GPU đã sử dụng chết trong phạm vi ~ 440mm với giá khoảng 550 đô la, do đó, mức giá xấp xỉ đơn hàng đầu tiên với kích thước khuôn dường như không quá. Các thiết bị cộng với lỗi vẫn có thể được bán dưới dạng thiết bị cấp thấp hơn với một số tính năng nhất định bị tắt. Đây là một thực tế phổ biến của nhiều công ty. 2
hellowworld922

@ John - Đặt một số lượng lớn các mô-đun lặp đi lặp lại có một lợi thế là khi xảy ra lỗi, bạn có thể vô hiệu hóa mô-đun xảy ra và giải phóng khuôn theo tiêu chuẩn chi phí thấp hơn (điều này xảy ra rất nhiều với DRAM, quay trở lại đúng vào thập niên 80 khi rất nhiều máy có mô-đun 32KB thực sự đang sử dụng chip 64K với phần bị lỗi bị vô hiệu hóa). Điều này thực sự có nghĩa là năng suất tăng khi bạn tích hợp DRAM với bộ xử lý ...
Jules

7

Có một số lý do tại sao việc thêm một lượng lớn DRAM vào CPU có thể không khả thi.

  1. Quá trình và fab có thể không được thiết lập cho DRAM. DRAM yêu cầu các phần tử mạch đặc biệt có các bước sản xuất thêm để sản xuất. Điều này làm tăng chi phí sản xuất.

  2. Tất cả bộ nhớ đó phải được kiểm tra. Kiểm tra bộ nhớ làm tăng thời gian kiểm tra của bạn. Đó là một sự gia tăng chi phí khác.

  3. Mở rộng khuôn là một sự gia tăng chi phí, vì nó có nghĩa là ít chết hơn trên mỗi wafer. Nó cũng ảnh hưởng đến năng suất - một khiếm khuyết lấy ra một phần lớn hơn của wafer của bạn. Để có một ví dụ cực đoan về điều này, hãy xem chi phí của cảm biến hình ảnh full-frame (35mm) trong máy ảnh.

  4. Phát triển một quy trình có thể xử lý các loại bộ nhớ đặc biệt tốn nhiều thời gian, tiền bạc và công việc hơn và có nguy cơ thất bại cao hơn. Bất kỳ vấn đề nào với DRAM sẽ trì hoãn việc phát hành CPU. CPU máy tính để bàn đang ở trên đỉnh cao của sản xuất chất bán dẫn, do đó, độ trễ có thể là một bất lợi cạnh tranh rất lớn. (Xem: AMD so với Intel trong vài năm qua.)

  5. DRAM yêu cầu cảm biến tương tự để đọc, cũng như làm mới định kỳ. Tôi không phải là chuyên gia về DRAM, nhưng tôi nghi ngờ rằng nó có thể nhanh như CPU ​​cao cấp bất kể là chip ngoài chip hay chip. Vì vậy, có lẽ bạn vẫn sẽ bị mắc kẹt với bộ nhớ đệm SRAM.

  6. Ngay cả khi bạn có thể khắc phục các sự cố trên và nhồi nhét vài GB DRAM vào CPU chết, thì vẫn không đủ để chạy máy tính để bàn, máy tính xách tay hoặc máy chủ, vì vậy dù sao bạn cũng sẽ phải có bộ nhớ ngoài chip .


1
Hầu hết các bộ nhớ cache được triển khai với ECC và một số bộ xử lý Intel gần đây kết hợp chipkill và chặn dự phòng cho bộ đệm. Điều này làm giảm yêu cầu thử nghiệm và cải thiện năng suất đáng kể cho các khuôn lớn hơn. Ngược lại, với cảm biến hình ảnh, không có khả năng sửa lỗi vì thông tin không được biết trước và chúng tôi cũng không thể quyết định, khi một khối pixel không hoạt động chính xác, chỉ cần bỏ qua nó và sử dụng một phụ tùng trong Vị trí của nó.
Oleksandr R.

Đúng, nó dễ dàng hơn để có được năng suất cao hơn với những kỷ niệm. Như tôi đã nói, đó là một ví dụ cực đoan.
Adam Haun

3

Ngoài các câu trả lời khác, có nhiều điều có thể nói về một hệ thống như vậy. Di chuyển bộ nhớ đến khuôn chính sẽ bao gồm một loạt các vấn đề kỹ thuật khác. Bạn sẽ phải định tuyến lại các xe buýt, xây dựng bộ điều khiển DMA vào bộ xử lý chính, cơ cấu lại xe buýt IRQ và xác định cách loại bỏ tất cả lượng nhiệt tăng thêm mà bạn sẽ đưa ra trong một khu vực tập trung. Điều này có nghĩa là nhà sản xuất bo mạch chủ cũng sẽ phải tham gia để hỗ trợ một sự thay đổi đáng kể như vậy. Trong khi các hệ thống cấp thấp có thể sẽ được hưởng lợi từ sự thay đổi như vậy, các hệ thống cao cấp có thể sẽ yêu cầu làm mát đáng kể. Tôi nghi ngờ rằng máy tính xách tay trung bình có thể xử lý một con chip như vậy, ví dụ.

Một con chip như vậy sẽ đắt hơn rất nhiều, mặc dù bo mạch chủ chính sẽ giảm giá (mặc dù có lẽ không đáng kể). Nếu bạn đã thấy các gói cho bộ điều khiển DMA, cộng với các gói RAM, bạn sẽ khó có thể tin rằng tất cả logic đó có thể được nhấn vào một khuôn duy nhất sẽ không lớn hơn đáng kể. Cũng nên nhớ rằng CPU được cắt từ các tấm lớn có kích thước cụ thể. Điều này có nghĩa là nhà sản xuất cũng sẽ có ít bộ xử lý hơn trên mỗi wafer, điều này cũng sẽ làm tăng chi phí chung.

Hãy nhớ rằng chúng ta không nói về việc sử dụng công suất trên toàn bộ hệ thống, điều này sẽ giảm, nhưng thay vào đó sẽ có sự tập trung nhiều hơn của công suất (và do đó nhiệt) trong một khu vực, điều này có thể sẽ làm tăng khả năng sự thất bại.

Cuối cùng, có một nhược điểm khác ở đây, và đó là khả năng cung cấp các hệ thống tùy chỉnh. Ngay bây giờ, các nhà sản xuất có thể chọn đưa ra các hệ thống có bộ xử lý giống hệt nhau nhưng dung lượng bộ nhớ khác nhau hoặc bộ xử lý khác nhau nhưng cùng một lượng bộ nhớ, dựa trên sở thích của khách hàng. Để cung cấp vô số cấu hình khác nhau, họ phải xây dựng các khuôn khác nhau, mỗi khuôn trên một dây chuyền lắp ráp khác nhau.

AMD đang tích cực sử dụng công nghệ thực sự hoạt động theo cách đó, trong đó mỗi phần của bộ xử lý chết là một đơn vị logic riêng biệt có thể được hoán đổi cho các cấu hình khác nhau. Trong tương lai, nếu thiết kế như vậy là khả thi, chúng ta rất có thể thấy CPU cung cấp bộ nhớ trong chip như một bản nâng cấp mô-đun đắt tiền, có thể đổi lại một số sức mạnh xử lý hoặc các điều chỉnh khác. Ví dụ, một ngày nào đó chúng ta có thể có sự lựa chọn giữa 256 lõi không có bộ nhớ tích hợp hoặc 128 lõi với bộ nhớ tích hợp hoặc thậm chí có thể là các cấu hình khác như GPU một phần, CPU một phần, RAM một phần.


Vấn đề chính với câu trả lời này là các thiết kế SoC cho điện thoại thông minh thực sự có chứa RAM. Những thứ đó không đắt hơn nhiều, thực tế chúng rẻ hơn.
MSalters

@MSalters Ngoại trừ chúng không được tích hợp vào cùng một khuôn. Các bộ nhớ chết là riêng biệt, đã được kiểm tra và xác nhận hoạt động chính xác và chỉ được đóng gói cùng với bộ vi xử lý.
Bàn chải đánh răng

2

Hầu như tất cả các vấn đề trên + thêm một vấn đề nữa: sức nóng.

Các tế bào DRAM về cơ bản là các tụ điện bị rò rỉ. Và chất điện môi ở đây là lớp SiO2. Khi nhiệt độ tăng, dòng rò tăng tỷ lệ thuận. Việc xả các tế bào DRAM nhanh hơn rất nhiều, đòi hỏi tốc độ làm mới nhanh hơn nhiều, điều này sẽ làm tăng độ phức tạp, dòng điện yêu cầu và tất nhiên, thêm một chút nhiệt.


2

Ngoài các câu trả lời đã được đưa ra, còn có một khía cạnh bổ sung: Chất thải do lỗi sản xuất:

Giả sử 1/100 tất cả các CPU của một kiểu máy nào đó được sản xuất đều bị lỗi (tất nhiên là ít hơn, 1/100 thì dễ tính hơn) và 1/100 của tất cả các RAM được sản xuất đều bị lỗi.

Nếu cả hai thành phần sẽ được kết hợp trên một chip đơn thì 1/100 tất cả các chip sẽ có CPU bị lỗi và 1/100 của tất cả các chip sẽ có RAM bị lỗi.

Điều này có nghĩa là:

  • 1 trong số 10000 chip sẽ có cả RAM và CPU bị lỗi
  • 99 chip sẽ có RAM bị lỗi
  • 99 chip sẽ có CPU bị lỗi
  • Tất cả trong tất cả 199 của 10000 bộ phận được sản xuất sẽ là chất thải

Sản xuất chip riêng biệt tính toán như sau:

  • 50 trong số 5000 RAM bị lỗi
  • 50 trong số 5000 CPU bị lỗi
  • 100 trong số 10000 bộ phận được sản xuất sẽ là chất thải

Lưu ý rằng một GB RAM thường được tạo dưới dạng ngân hàng gồm tám chip, do đó bạn sẽ không phải kết hợp hai nhưng 9 thành phần vào một chip nếu bạn muốn đặt RAM và CPU trên cùng một chip. Điều này sẽ dẫn đến khoảng 865 bộ phận bị lỗi của 10000 được sản xuất trong ví dụ đơn giản ở trên.

Các CPU "IBM Cell" có vấn đề chính xác. Bảng điều khiển "Playstation" đã sử dụng các chip bị lỗi một phần; phần mềm Playstation được viết theo cách mà các lõi và SRAM bị lỗi không được sử dụng.


1
AMD cung cấp CPU 3 nhân trong một thời gian vì lý do tương tự. Tôi nghĩ rằng trong thực tế, các bộ phận thường được kiểm tra ở mức độ chết trước khi được đóng gói, vì vậy mối quan tâm của bạn là áp dụng nhiều nhất cho các kết hợp CPU và bộ nhớ nguyên khối.
Oleksandr R.

Darpa đã giành được giải thưởng cho hiệu suất năng lượng gấp 50 lần bằng cách vượt qua bức tường bộ nhớ bằng cách sử dụng 3dSoC, vùng đất giả tưởng liên quan đến các kỹ sư của Intel và Qualcom, ngoại trừ darpa là darpa. monolithic3d.com/blog/ của SoC (hệ thống trên chip) là tốt nhất cho bộ xử lý song song, có nghĩa là có 1000ds nhóm thay vì 2/16.
com.p Hiểu được

1

Thực tế có hai loại RAM. Chúng là RAM tĩnh và RAM động. Bộ nhớ tĩnh rất nhanh nhưng chi phí cao hơn. Trong khi đó, RAM động chậm so với RAM tĩnh nhưng có chi phí rẻ so với RAM tĩnh.

Bộ nhớ cache rơi vào RAM tĩnh. bạn có thể thấy rằng chúng có kích cỡ KB hoặc MB. Họ rất nhanh. Nhưng chi phí cao.


Không chính xác, vâng, chúng rất nhanh, nhưng điều đó chủ yếu là do dữ liệu khoảng cách phải di chuyển ít hơn nhiều so với DRAM.
AStopher

3
Trên thực tế, tế bào SRAM nhanh hơn vì nó đơn giản hơn. Đó là một mạch ổn định kỹ thuật số. Nếu bạn vô tình đặt nó thành giá trị tương tự 0,8, nó sẽ tự khắc phục bằng cách di chuyển đến vị trí ổn định 1.0. DRAM không có trạng thái ổn định như vậy. Nó không di chuyển đi từ trạng thái trung gian. Tồi tệ hơn, nó di chuyển về phía các trạng thái như vậy, đó là lý do tại sao bạn cần thêm mạch "làm mới".
MSalters

@MSalters: Ô SRAM KHÔNG đơn giản hơn ô DRAM. Bạn đúng rằng nó ổn định hơn nhiều, điều này làm cho việc sử dụng nó đơn giản hơn (cả về sơ đồ mạch hỗ trợ và sơ đồ thời gian). Nhưng các tế bào SRAM gấp khoảng 6 lần mạch trên mỗi bit so với DRAM.
Ben Voigt

1
@BenVoigt: Trong số lượng bóng bán dẫn, có - 6T so với 1T. Nhưng DRAM có một tụ điện là một thành phần khá kỳ lạ. SRAM chỉ là các bóng bán dẫn được nối với nhau.
MSalters

Tụ điện trong DRAM hóa ra cũng được thực hiện như một bóng bán dẫn
Ben Voigt

1

Ngoài các lý do khác được đề cập, nhiều hệ thống có nhiều lõi CPU. Tại thời điểm thông tin được lưu trữ trong DRAM chính phù hợp với tất cả các bản sao được lưu trong bộ nhớ cache, tất cả các bộ xử lý không có thông tin được lưu trong bộ nhớ cache sẽ có quyền truy cập như nhau. Một số kiến ​​trúc được thiết kế xung quanh giả định rằng mỗi lõi CPU sẽ "sở hữu" một phạm vi không gian địa chỉ và ngay cả khi CPU có khả năng truy cập bộ nhớ do các bộ xử lý khác sở hữu, việc truy cập như vậy sẽ chậm hơn nhiều so với truy cập vào bộ nhớ của chính nó , nhưng x86 thường không được thực hiện theo cách như vậy.

Nếu một hệ thống được thiết kế xung quanh giả định rằng các lõi của bộ xử lý sở hữu các dải địa chỉ nhất định và mã sẽ cố gắng giảm thiểu việc sử dụng các dải địa chỉ của các bộ xử lý khác, thì sẽ có nghĩa là mỗi mã bộ xử lý bao gồm một lượng lớn bộ nhớ trên chip. Thiết kế như vậy có thể giảm thời gian cần thiết để lõi bộ xử lý truy cập vào bộ nhớ của chính nó, nhưng nó có thể sẽ tăng thời gian cần thiết để nó truy cập vào bộ nhớ của bộ xử lý khác. Trừ khi hệ thống được thiết kế xung quanh một giả định như vậy, tuy nhiên, có khả năng dữ liệu sẽ được phân phối giữa các bộ xử lý mà không quan tâm đến việc ai cần nó khi nào. Ngay cả khi thời gian thêm cần thiết để truy cập dữ liệu từ bên trong CPU khác (so với hệ thống bộ nhớ ngoài) chỉ bằng một nửa so với thời gian lưu trên truy cập nội bộ,

Nếu một người đang thiết kế một hệ thống từ đầu để phù hợp với các công nghệ ngày nay, một kiến ​​trúc bộ nhớ không đồng nhất có thể cho phép nhiều "cú hích" hơn một hệ thống cần cho phép tất cả các bộ xử lý truy cập tất cả bộ nhớ một cách hiệu quả. Tuy nhiên, với các thiết kế phần mềm ngày nay, việc có một hệ thống bộ nhớ ngoài được chia sẻ giữa các bộ xử lý sẽ có hiệu quả hơn so với việc cố gắng lưu trữ dữ liệu hàng loạt trong chính bộ xử lý.


2
Kiến trúc bộ nhớ không đồng nhất đã được sử dụng (và thậm chí phổ biến) ngày nay. Đối với CPU có bộ điều khiển bộ nhớ tích hợp được sử dụng trong hệ thống nhiều bộ xử lý, dữ liệu được lưu trữ trong bộ nhớ vật lý của bộ xử lý khác ở xa hơn và có thể truy cập với độ trễ cao hơn so với RAM được gắn cục bộ. Trong thực tế, những gì xảy ra trong các hệ thống này là các bộ xử lý được trang bị thêm các mức bộ nhớ cache và lưu lượng kết hợp được xử lý một phần bởi kết nối kết cấu. POWER7 và POWER8 thuộc loại này.
Oleksandr R.

1

Mặc dù tất cả các câu trả lời trước đây đều đúng khi chỉ ra lý do tại sao việc thêm nhiều bộ nhớ vào CPU lại khó khăn đến vậy, nhưng cũng đúng là có khá nhiều bộ nhớ trong các CPU hiện đại.

Trong các hoạt động thời gian thực khi độ trễ xác định là rất quan trọng, việc sử dụng bộ đệm trên chip làm bộ nhớ địa chỉ, cho mã và / hoặc dữ liệu là điều không thể tin được. Ưu điểm là thời gian truy cập nhanh và liên tục, và nhược điểm là bộ nhớ trên chip khá hạn chế.


1

Các vấn đề bạn mô tả trong câu hỏi ban đầu của bạn chỉ có thể tránh được nếu TẤT CẢ bộ nhớ trong máy được đưa vào CPU. Bất kỳ bộ nhớ bổ sung nào được thêm vào máy thông qua các khe cắm trên bo mạch chính sẽ phải chịu cùng độ trễ mà bạn mô tả và sẽ yêu cầu các thiết bị điều khiển logic và điều khiển logic giữa CPU / RAM và RAM trên bo mạch.

RAM rẻ và thường được người dùng mở rộng một hoặc thậm chí hai lần trong khi nâng cấp CPU của họ.

Cũng cần nhớ rằng một cuộc gọi "Tìm nạp" thông thường sẽ, ngay cả khi RAM đang chạy ở tốc độ xung nhịp CPU, dẫn đến một số dấu hiệu nhàn rỗi trên CPU.

Tổ chức bộ nhớ truyền thống trên máy là một kim tự tháp với các thanh ghi CPU ở trên cùng, sau đó là bộ đệm, sau đó là RAM, sau đó là đĩa. Thông thường các máy hoạt động tốt có sự kết hợp giữa tốc độ xung nhịp tốt, bộ nhớ cache hợp lý, dung lượng RAM tốt và đĩa cứng tốc độ cao (hoặc mảng). Trong những năm gần đây, hiệu suất đĩa thường giúp nâng cao hiệu suất tốt nhất trong hầu hết các đĩa PC và RPM cao, đĩa có bộ đệm và đĩa trạng thái rắn giúp tăng hiệu suất tốt.

Đúng, một máy có tất cả RAM trên chip sẽ hoạt động tốt trong các ứng dụng hiện đại, nhưng máy có một số RAM trên chip chạy hệ điều hành tiêu chuẩn có thể sẽ không tăng hiệu suất mà bạn có thể nghĩ.

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.