Vai trò của việc triển khai bộ nhớ cache cấp cuối đối với các nhà phát triển SoC
Có một thách thức đối với các nhà phát triển SoC là tìm cách điều hướng nhu cầu bộ nhớ trong thiết kế của họ. Bài viết này xem xét cách bộ đệm ẩn thứ tư hoặc cấp cuối cùng có thể cung cấp giải pháp.
Một trong những nghịch lý kỳ lạ của thời đại chúng ta là bộ vi xử lý nhanh hơn ký ức. Thật kỳ lạ vì bộ vi xử lý là những mạch phức tạp, hàng tỷ bóng bán dẫn trong khi DRAM chỉ là… hàng và hàng của các ô nhớ giống hệt nhau. Bộ vi xử lý đắt tiền, nhưng DRAM thực tế là hàng hóa được bán theo đồng bảng Anh.
Một trong những công việc của chúng tôi với tư cách là nhà thiết kế sản phẩm là thiết kế các giải pháp cho vấn đề này, chủ yếu bằng cách sử dụng bộ nhớ đệm. Chúng tôi bọc bộ xử lý của mình trong các bộ nhớ đệm cấp một, hai và đôi khi là ba để đệm độ trễ và băng thông không khớp giữa (các) bộ xử lý nhanh và (các) DRAM tương đối chậm. Đó là một thủ thuật đã hoạt động trong nhiều thập kỷ, và bây giờ nó vẫn hoạt động.
Hình 1: Bộ đệm cấp cuối (còn được gọi là bộ đệm hệ thống) làm giảm số lần truy cập vào bộ nhớ ngoài chip, làm giảm độ trễ của hệ thống và mức tiêu thụ điện năng trong khi tăng băng thông có thể đạt được. Nó thường được định vị vật lý trước bộ điều khiển bộ nhớ cho DRAM ngoài chip hoặc bộ nhớ flash.
Máy học (ML) đang làm cho thiết kế này trở nên thách thức hơn. Suy luận ML yêu cầu rất nhiều và rất nhiều dữ liệu, giống như cách mà các kết hợp đồ họa hoặc xử lý tín hiệu kỹ thuật số (DSP) xé nát các cấu trúc dữ liệu lớn, thường trú trong bộ nhớ. Các thiết kế SoC mới cho ML không chỉ cần bộ xử lý nhanh - mà chúng còn cần truy cập nhanh vào bộ nhớ. Nếu không, tất cả cơ CPU đó sẽ bị lãng phí.
Các tùy chọn để giải quyết thử thách trí nhớ
Các nhà sản xuất bộ nhớ đã bắt đầu phát triển tất cả các loại DRAM mới để thu hẹp khoảng cách. Chúng tôi có bộ nhớ băng thông cao (HBM) với băng thông lý thuyết 1Gbit / giây, và thậm chí cả HBM2 và HBM2E, hứa hẹn khoảng 3Gbit / giây. Và thậm chí còn có nhiều tùy chọn giải pháp khác như SRAM 3D xếp chồng lên nhau bằng cách sử dụng khớp nối quy nạp không dây để đạt được gấp ba lần băng thông HBM2E. Nhưng để đạt được tốc độ đó đòi hỏi các thủ thuật chế tạo phức tạp và tốn kém với các mô-đun đa lõi, khuôn silicon xếp chồng lên nhau theo chiều dọc, bộ xen giữa silicon, vias xuyên qua silicon (TSV), xe buýt 256-bit và 1024-bit và / hoặc vi va chạm silicon.
Còn về bộ nhớ đồ họa, như GDDR6? Chúng rẻ và phong phú. Chắc chắn, họ cũng có thể thực hiện công việc cho khối lượng công việc ML? Không quá nhanh. Như tên cho thấy, giao diện GDDR6 dành cho card đồ họa và nó đã ở thế hệ thứ sáu. Tin tốt là chip / card đồ họa là một thị trường có khối lượng lớn. Tin xấu là, đó là một thị trường ngắn hạn. Mặc dù thật hấp dẫn để mang lại thị trường PC chính thống cho các thành phần và công nghệ, đó thường là một công thức gây thất vọng. Khi xu hướng chủ đạo chuyển sang, bạn phải tìm kiếm các thành phần lỗi thời từ các nhà cung cấp hạn chế. Một nhà thiết kế SoC cần các thành phần và giao diện sẽ tồn tại suốt đời của thiết kế, đừng bận tâm đến tuổi thọ của sản phẩm trong lĩnh vực này.
Thêm bộ nhớ đệm thứ tư (cấp cuối cùng)
Vì vậy, giải pháp bộ nhớ tốt nhất là gì? Để biết gợi ý, chúng ta có thể xem xét những gì các công ty khác đang làm. Các phân tích rõ ràng đã chỉ ra rằng Apple giải quyết vấn đề tốc độ không khớp bằng cách thêm một bộ nhớ đệm khác. Nếu một công ty lớn với nguồn lực R & D gần như vô hạn thiết kế xung quanh các SoC của họ bị tắc nghẽn theo cách này, thì có lẽ điều đó rất đáng xem xét.
Mẹo là không đặt bộ nhớ cache gần bộ xử lý. Nó phản trực giác, nhưng nó hoạt động. Hầu hết các bộ xử lý nhúng cao cấp, như Arm Cortex A-series, sẽ có bộ nhớ đệm L1 và L2 cho mỗi lõi CPU. Đôi khi, phức hợp bộ xử lý có bộ nhớ đệm L3 cũng được chia sẻ giữa tất cả các lõi CPU. Đó là tất cả hoạt động tốt. Không cần điều chỉnh.
Bây giờ, thêm bộ đệm thứ tư - bộ đệm cấp cuối - trên bus hệ thống toàn cầu, gần thiết bị ngoại vi và bộ điều khiển DRAM, thay vì là một phần của tổ hợp CPU. Bộ nhớ đệm cấp cuối hoạt động như một bộ đệm giữa (các) lõi Arm tốc độ cao và bộ nhớ chính lớn nhưng tương đối chậm.
Cấu hình này hoạt động vì bộ điều khiển DRAM không bao giờ "nhìn thấy" bộ đệm mới. Nó chỉ xử lý các yêu cầu đọc / ghi bộ nhớ như bình thường. Điều này cũng xảy ra với bộ xử lý Arm. Chúng hoạt động bình thường. Không cần thêm phần cứng hoặc phần mềm kết hợp bộ nhớ cache. Giống như tất cả các bộ đệm tốt, bộ đệm cấp cuối cùng này là trong suốt đối với phần mềm.
Ưu và nhược điểm của bộ nhớ đệm cấp cuối
Giống như tất cả các bộ nhớ đệm tốt, bộ nhớ đệm cấp cuối giúp cải thiện hiệu suất đáng kể mà không cần dùng đến các công nghệ bộ nhớ kỳ lạ hoặc đắt tiền (hoặc không được xác định rõ). Nó làm cho các DRAM chung mà bạn có hoạt động tốt hơn. Cụ thể, nó cải thiện cả độ trễ và băng thông, vì bộ nhớ đệm trên chip và nhanh hơn nhiều so với DRAM ngoài chip, và vì nó có kết nối rộng hơn, nhanh hơn với cụm CPU. Đó là đôi bên cùng có lợi.
Nhược điểm là gì? Tất nhiên, một bộ nhớ cache chiếm vùng chết. Logic điều khiển bộ nhớ đệm (quản lý thẻ, bảng tra cứu, v.v.) là không đáng kể, nhưng bản thân bộ nhớ đệm RAM sử dụng một lượng không gian có thể đo được. Mặt khác, bộ nhớ đệm cấp cuối tiết kiệm điện năng tiêu thụ, vì không có gì tiêu thụ nhiều năng lượng hơn việc đọc hoặc ghi vào / từ DRAM bên ngoài, đặc biệt là khi bạn đang sử dụng DRAM theo cách mà khối lượng công việc hiện đại làm. Mỗi giao dịch được duy trì trên chip sẽ tiết kiệm rất nhiều điện năng cũng như thời gian.
Ngoài ra còn có một lợi ích bảo mật. Các giao dịch trong bộ nhớ cache trên chip không thể bị theo dõi hoặc bị tấn công kênh bên từ việc thăm dò tín hiệu hoặc thao tác RF. Bộ nhớ đệm được kiểm tra, hiểu rõ công nghệ. Điều đó không có nghĩa là chúng đơn giản hoặc tầm thường để triển khai - có một nghệ thuật thực sự để thiết kế một bộ nhớ cache tốt - nhưng ít nhất bạn biết rằng bạn không đang thử nghiệm beta giao diện bộ nhớ độc quyền của một số nhà cung cấp.
Để tìm hiểu sâu hơn về triển khai bộ đệm cấp cuối, bạn có thể đọc CodaCache: Giúp phá vỡ bức tường bộ nhớ , một bài báo kỹ thuật mô tả việc triển khai bộ đệm cấp cuối cho các nhà phát triển SoC. Nó được thiết kế dưới dạng IP drop-in có thể được đưa vào thiết kế SoC mà không cần dùng đến các công nghệ kỳ lạ, đắt tiền hoặc đang phát triển.
Các bài báo trong ngành là một dạng nội dung cho phép các đối tác trong ngành chia sẻ tin tức, thông điệp và công nghệ hữu ích với độc giả All About Circuits theo cách mà nội dung biên tập không phù hợp. Tất cả các Bài báo trong Ngành đều tuân theo các nguyên tắc biên tập nghiêm ngặt với mục đích cung cấp cho độc giả những tin tức, chuyên môn kỹ thuật hoặc câu chuyện hữu ích. Các quan điểm và ý kiến được thể hiện trong các Bài báo trong ngành là của đối tác và không nhất thiết là của All About Circuits hoặc tác giả của nó.
Không có nhận xét nào