RAM trong máy tính có nhiệm vụ đưa dữ liệu cho CPU để xử lý các tác vụ. Chính vì vậy, tốc độ xử lý của CPU sẽ bị giới hạn bởi tốc độ đọc ghi dữ liệu từ RAM.
Trên bo mạch chủ của máy tính, chúng ta sẽ thấy CPU và RAM dù được đặt gần nhau nhưng giữa chúng vẫn có khoảng cách nhất định. Khoảng cách này so với kích thước của mỗi bóng bán dẫn trên các bộ xử lý là rất lớn. Vậy tại sao nhà thiết kế máy tính không đặt CPU và RAM ngay trên cùng một die chíp để giảm khoảng cách giữa chúng và đẩy nhanh tốc độ xử lý?
Bộ nhớ của CPU - bộ nhớ cache
Trên thực tế, ngay trong chính CPU cũng có một vùng RAM riêng được gọi là bộ nhớ cache nhưng thường chỉ có dung lượng vài MB. Bởi nó có chi phí đắt hơn rất nhiều so với RAM nên sẽ đội giá CPU lên cao, tùy thuộc vào dung lượng bộ nhớ của nó.
Bộ nhớ cache này giúp CPU giảm thiểu tối đa thời gian xử lý trong khi chờ đợi dữ liệu từ RAM chuyển về.
Khi cần xử lý một dữ liệu, đầu tiên CPU sẽ tìm kiếm trong bộ nhớ cache trước để xem gần đây bộ nhớ cache có đọc/ghi giá trị đó hay không. Nếu bộ nhớ cache có, CPU sẽ sử dụng giá trị tại đó để có tốc độ xử lý nhanh nhất. Nếu không có, CPU mới tìm đến RAM để lấy được giá trị nó cần.
Vậy, để CPU tăng tốc độ xử lý và đơn giản hóa thiết kế, tại sao các nhà thiết kế chip không tăng dung lượng bộ nhớ cache lên ngang với dung lượng RAM ?
Thực tế, để CPU đạt được tốc độ cao như yêu cầu, thì bộ nhớ cache của nó sử dụng loại RAM tĩnh hay SRAM. Tuy nhiên, dù SRAM có tốc độ rất nhanh, nhưng lượng điện năng mà nó tiêu thụ là rất lớn, chưa kể đến nó khá cồng kềnh nữa.
Để lưu trữ một "bit" dữ liệu, SRAM cần đến 6 bóng bán dẫn. Điều này có nghĩa là cần tới 48 tỷ bóng bán dẫn, để có một thanh SRM có dung lượng 1 GigaByte (GB). Nếu so với số lượng bóng bán dẫn trên CPU thì đó quả là một con số khủng khiếp. Ngay cả bộ xử lý Broadwell-E 6 lõi Core i7-3960X của Intel cũng chỉ có 2,27 tỷ bóng bán dẫn mà thôi, và tất nhiên bộ nhớ cache của nó chỉ có dung lượng 15 MegaByte (MB) mà thôi.
Hình vẽ mô tả về bộ xử lý máy tính.
Trong ảnh trên ta thấy, không phải các bộ xử lý máy tính mà các mạch tích hợp của bộ nhớ mới chính là thành phần phức tạp và tốn nhiều không gian. Vì vậy, nếu tăng kích thước bộ nhớ cache trên chip, chúng ta sẽ không có chỗ để đặt CPU. Tất nhiên, với kích thước hạn hẹp thì việc bộ nhớ cache trong bộ xử lý có dung lượng vài MB mỗi chip là điều hiển nhiên.
Một trong những vấn đề quan trọng ngăn cản việc tăng dung lượng bộ nhớ cache là giá thành. Bản thân bộ nhớ cache được làm từ loại bộ nhớ SRAM đắt đỏ, tăng dung lượng sẽ khiến chi phí cho mỗi bộ xử lý chứa CPU và bộ nhớ cache đó tăng lên.
Tại sao không sử dụng loại bộ nhớ khác giá thành rẻ hơn?
Các thanh RAM máy tính hiện nay được làm từ DRAM, có giá thành rẻ hơn và dung lượng lớn hơn. Ngoài ra, DRAM còn có cấu trúc gọn gàng, chỉ cần một bóng bán dẫn cho mỗi bit dữ liệu. Nhược điểm của DRAM chính là tốc độ chậm hơn đáng kể so với SRAM.
Vậy, tại sao các nhà thiết kế không đặt DRAM vào trong CPU để tăng tốc độ và dung lượng bộ nhớ cho bộ xử lý? Trên thực tế, Intel đã áp dụng kiến trúc đó nhưng không thể thay thế được vai trò của RAM thông thường.
Vị trí của eDRAM trong bộ xử lý thế hệ Haswell của Intel.
Bắt đầu từ chip thế hệ Haswell, Intel đã tích hợp một bộ nhớ DRAM trên cùng một die chip với CPU, được gọi là eDRAM (hay Embedded DRAM – DRAM nhúng). Trên chip thế hệ Coffee Lake, Intel vẫn sử dụng eDRAM này.
Tuy nhiên, dù kiến trúc mới có ưu thế về hiệu năng nhưng vẫn không thể thay thế cả SRAM lẫn DRAM thông thường. Nguyên nhân là tốc độ, bởi ngay cả khi được tích hợp ngay trên die chip bên cạnh CPU thì nó vẫn có xung nhịp chậm hơn xung nhịp của CPU, trong khi SRAM lại có xung nhịp tương tự như CPU. Ngoài ra, để không bị mất dữ liệu DRAM cần phải được liên tục làm mới hàng nghìn lần mỗi chu kỳ, trong khi điều đó lại không cần thiết với SRAM. Chính vì vậy, độ trễ của DRAM hay eDRAM vẫn lớn hơn nhiều so với SRAM và chúng chỉ được sử dụng như bộ nhớ cache L3 hoặc L4 bên cạnh CPU.
Hiện nay, eDRAM trên các CPU chỉ có dung lượng 128 MB, trong khi đó các thanh RAM hiện nay đã có dung lượng lên tới hàng GigaByte. Sự chênh lệch quá lớn về dung lượng khiến cho eDRAM cũng không thể thay thế DRAM.
Intel Kaby Lake G Core i7-8705G được thiết kế với bộ xử lý với CPU, GPU và RAM gắn cùng trên một die chip.
Phải đến các chip Kaby Lake G mới ra mắt gần đây, Intel mới bắt đầu sử dụng các bộ xử lý với CPU, GPU và dung lượng RAM lớn được đặt chung trên một die chip nhưng vẫn phải có các thanh RAM thông thường đi kèm.
Ngoài ra, cách hoạt động khác nhau cũng là một trong những lý do khiến eDRAM không thay thế được DRAM. Trên bộ nhớ cache, dữ liệu được ghi địa chỉ như nhau và có thể bị xóa bất cứ lúc nào. Còn trên RAM, dữ liệu được đặt vào các vị trí riêng biệt cho mỗi ứng dụng.
Ngoài ra, việc đóng gói RAM và CPU cùng với nhau sẽ gây khó khăn cho việc nâng cấp. Người mua có thể sẽ buộc phải mua cả CPU nếu muốn tăng dung lượng RAM, điều này gây lãng phí không cần thiết.
Xét về tổng thể, việc đóng gói CPU và RAM máy tính thành một khối mang lại các giá trị thực tế ít hơn so với tách riêng như hiện tại. Bản thân CPU đã được tích hợp rất nhiều loại bộ nhớ khác nhau bên trong có khả năng giúp nó tăng tốc độ xử lý lên đáng kể.