Tôi đang mô tả một hệ thống trong VHDL. Hệ thống này đã chứa bộ xử lý, bộ điều khiển DDR SDRAM và bộ điều khiển VGA. VGA đọc các pixel từ SDRAM (đã được xác thực và chứng minh trong FPGA).
Mặc dù VGA và SDRAM đã liên lạc với nhau, tôi vẫn cần thực hiện kết nối giữa bộ xử lý và SDRAM. Cuối cùng, thứ tôi dự định có là một bộ xử lý rút ra bộ đệm khung được lưu trữ trong SDRAM. Sau đó, một lần lật trang xảy ra và VGA bắt đầu tìm nạp hình ảnh mới được bộ xử lý vẽ.
Để hướng dẫn VGA tìm nạp từ vị trí mới, tôi muốn thông báo cho bộ điều khiển VGA (sử dụng bộ nhớ ánh xạ io) địa chỉ mới của hình ảnh mới. Một chiến lược đơn giản mà tôi nghĩ là đặt một mux và xác minh xem phạm vi địa chỉ có nằm trong các thanh ghi của bộ điều khiển VGA hay trong dải địa chỉ của bộ đệm hay không. Ngoài ra, tôi có cần quan tâm đến các miền đồng hồ khác nhau không? Nếu có, những vấn đề có thể tôi nên quan tâm?
Ví dụ, đôi khi trong quá khứ tôi đã thấy mã từ x86 viết (sử dụng lệnh outb) và hướng dẫn tiếp theo là một inb đến cùng và / hoặc một vị trí liên quan. Trong trường hợp này, tôi có cần sửa đổi logic bộ xử lý để trì hoãn các hoạt động đó không? Nếu có, có bao nhiêu trường hợp để thực hiện? Có bao nhiêu giao diện để quan tâm?
Ngoài ra, khi khởi động, bộ đệm được sử dụng như thế nào nếu tất cả các mục không hợp lệ? Tôi tin rằng có một hình ảnh ROM với mã khởi động. Nó cũng có thể tồn tại một RAM cục bộ tạm thời cho các bài viết được tạo bởi mã được lưu trữ trong ROM (hướng dẫn sw)?
Tiếp tục: Tôi cần thông tin về cách triển khai mạch phân cấp bộ nhớ: bộ nhớ cache, bộ nhớ ánh xạ io, TLB, bộ nhớ ảo, v.v. Và làm thế nào tất cả những thứ này giao tiếp với nhau. Tôi biết cách triển khai cache và TLB chẳng hạn. Nhưng tôi không chắc chắn về cách kết nối chúng lại với nhau. Tôi chỉ có thể sử dụng một cái gì đó hoạt động (như ý tưởng mux). Nhưng tôi muốn làm theo các thiết kế được thành lập trong ngành công nghiệp.
Những gì tôi đã nghiên cứu: - cách chạy mips - kiến trúc máy tính (Patterson) - Hướng dẫn sử dụng MIPS - Hướng dẫn của ARM - Hướng dẫn của Intel
Nhưng không ai giải thích chi tiết.
Nếu có nhiều cách để thực hiện, chỉ cho tôi một cách mà bạn biết, xin vui lòng. Ngay cả khi đó là mã nguồn hoặc sơ đồ khối. Một lần nữa, tôi không cần giải thích về cách thức hoạt động bên trong. Tôi chỉ cần biết các giao diện giữa các mô-đun.
Cảm ơn tất cả