Mục lục:

Thiết kế bộ điều khiển bộ nhớ đệm liên kết đặt bốn chiều đơn giản trong VHDL: 4 bước
Thiết kế bộ điều khiển bộ nhớ đệm liên kết đặt bốn chiều đơn giản trong VHDL: 4 bước

Video: Thiết kế bộ điều khiển bộ nhớ đệm liên kết đặt bốn chiều đơn giản trong VHDL: 4 bước

Video: Thiết kế bộ điều khiển bộ nhớ đệm liên kết đặt bốn chiều đơn giản trong VHDL: 4 bước
Video: VHDL. Thiết kế khối phát dữ liệu UART và khối FIFO. 2024, Tháng mười một
Anonim
Thiết kế bộ điều khiển bộ nhớ đệm liên kết bộ bốn chiều đơn giản trong VHDL
Thiết kế bộ điều khiển bộ nhớ đệm liên kết bộ bốn chiều đơn giản trong VHDL

Trong phần hướng dẫn trước đây của tôi, chúng ta đã biết cách thiết kế một bộ điều khiển bộ đệm được ánh xạ trực tiếp đơn giản. Lần này, chúng tôi đi trước một bước. Chúng tôi sẽ thiết kế một bộ điều khiển bộ đệm kết hợp bốn chiều đơn giản. Thuận lợi ? Giống như blog trước của tôi, chúng tôi sẽ thiết kế và mô phỏng toàn bộ bộ xử lý, bộ nhớ chính và môi trường bộ đệm để kiểm tra bộ điều khiển bộ nhớ cache của chúng tôi. Tôi hy vọng các bạn thấy đây là tài liệu tham khảo hữu ích để hiểu các khái niệm và thiết kế bộ điều khiển bộ nhớ cache của riêng bạn trong tương lai. Vì mô hình cho bộ xử lý (băng ghế thử nghiệm) và hệ thống bộ nhớ chính hoàn toàn giống với blog trước đây của tôi, tôi sẽ không giải thích lại về chúng. Vui lòng tham khảo hướng dẫn trước để biết chi tiết về nó.

Bước 1: Thông số kỹ thuật

Thông số kỹ thuật
Thông số kỹ thuật

Xem nhanh thông qua các thông số kỹ thuật của Bộ điều khiển bộ nhớ cache được trình bày ở đây:

  • Bộ điều khiển bộ nhớ cache liên kết đặt bốn chiều (hãy truy cập liên kết này nếu tìm kiếm Bộ điều khiển bộ nhớ cache được ánh xạ trực tiếp).
  • Bộ nhớ đệm đơn, chặn.
  • Chính sách ghi thông qua về lượt truy cập ghi.
  • Chính sách Viết xung quanh về lỗi viết.
  • Chính sách thay thế cây Pseudo-LRU (pLRU).
  • Tag Array trong bộ điều khiển.
  • Các thông số có thể cấu hình.

Các thông số kỹ thuật mặc định cho Bộ nhớ đệm và Bộ nhớ chính giống như thông số hướng dẫn trước đây của tôi. Hãy tham khảo chúng.

Bước 2: Chế độ xem RTL của Toàn bộ Hệ thống

Chế độ xem RTL của Toàn bộ Hệ thống
Chế độ xem RTL của Toàn bộ Hệ thống

Toàn bộ biểu diễn RTL của Mô-đun trên cùng được hiển thị trong Hình (không bao gồm bộ xử lý). Thông số kỹ thuật mặc định cho các xe buýt là:

  • Tất cả các Xe buýt dữ liệu đều là Xe buýt 32-bit.
  • Bus địa chỉ = Bus 32-bit (Nhưng chỉ có 10 bit được Bộ nhớ định địa chỉ ở đây).
  • Khối dữ liệu = 128 bit (Bus băng thông rộng để đọc).
  • Tất cả các thành phần được điều khiển bởi cùng một đồng hồ.

Bước 3: Kết quả kiểm tra

Mô-đun hàng đầu đã được kiểm tra bằng cách sử dụng Ghế thử nghiệm, mô-đun này chỉ đơn giản là mô hình hóa Bộ xử lý không có đường ống, giống như chúng tôi đã làm trong phần hướng dẫn cuối cùng. Ghế thử nghiệm thường xuyên tạo ra các yêu cầu Đọc / Ghi Dữ liệu vào Bộ nhớ. Điều này chế nhạo các lệnh "Tải" và "Lưu trữ" điển hình, phổ biến trong tất cả các chương trình được thực thi bởi bộ xử lý.

Kết quả kiểm tra đã xác minh thành công chức năng của Bộ điều khiển bộ nhớ đệm. Sau đây là các số liệu thống kê thử nghiệm được quan sát:

  • Tất cả các tín hiệu Đọc / Ghi Miss và Hit đều được tạo chính xác.
  • Tất cả các thao tác Đọc / Ghi Dữ liệu đều thành công theo cả bốn cách.
  • Thuật toán pLRU được xác minh thành công cho việc thay thế các dòng bộ nhớ cache.
  • Không có vấn đề dữ liệu không nhất quán / không nhất quán được phát hiện.
  • Thiết kế đã được xác minh thời gian thành công cho Maxm. Xung nhịp Tần số hoạt động = 100 MHz trong Bo mạch Xilinx Virtex-4 ML-403 (toàn bộ hệ thống), 110 MHz cho riêng Bộ điều khiển bộ nhớ cache.
  • Khối RAM được suy ra cho Bộ nhớ chính. Tất cả các mảng khác đã được thực hiện trên LUT.

Bước 4: Tệp đính kèm

Các tệp sau được đính kèm ở đây với blog này:

  • Các tệp. VHD của Bộ điều khiển bộ đệm, Mảng Dữ liệu Bộ đệm, Hệ thống Bộ nhớ Chính.
  • Kiểm tra băng ghế dự bị.
  • Tài liệu về Bộ điều khiển bộ nhớ cache.

Ghi chú:

  • Xem qua tài liệu để hiểu đầy đủ về các thông số kỹ thuật của Bộ điều khiển bộ nhớ cache được trình bày ở đây.
  • Bất kỳ thay đổi nào trong mã đều phụ thuộc vào các mô-đun khác. Vì vậy, các thay đổi nên được thực hiện một cách thận trọng.
  • Hãy chú ý đến tất cả các nhận xét và tiêu đề mà tôi đã đưa ra.
  • Nếu vì bất kỳ lý do gì, Block RAM không được suy ra cho Bộ nhớ chính, GIẢM kích thước của bộ nhớ, tiếp theo là các thay đổi về độ rộng bus địa chỉ trên các tệp, v.v. Vì vậy, cùng một bộ nhớ có thể được thực hiện trên LUT hoặc RAM phân tán. Điều này sẽ tiết kiệm thời gian định tuyến và tài nguyên. Hoặc, đi tới tài liệu FPGA cụ thể và tìm mã tương thích cho Block RAM và chỉnh sửa mã cho phù hợp, đồng thời sử dụng các thông số kỹ thuật về độ rộng bus địa chỉ tương tự. Kỹ thuật tương tự cho Altera FPGA.

Đề xuất: