You are on page 1of 17

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM


KHOA ĐÀO TẠO CHẤT LƯỢNG CAO

MÔN HỌC: Thiết kế hệ thống và vi mạch tích hợp

BÁO CÁO
TÌM HIỂU VỀ
MEMORY CONTROLLER

GVHD: TS. Đỗ Duy Tân

Họ tên Sinh viên Mssv

Hoàng Hữu Nguyên Anh 21161

Lê Thị Kiều Trang 21161

Nguyễn Tấn Định 21161

Nguyễn Trần Quốc Tuấn 21161381

TP. Hồ Chí Minh – Tháng 5 năm 2023


Mục lục
Chương 1: TỔNG QUÁT

Memory controller là một thành phần quan trọng trong hệ thống máy tính, chịu trách nhiệm quản lý
việc truy cập và giao tiếp giữa bộ nhớ và bộ xử lý. Memory controller giúp tối ưu việc truy cập bộ nhớ
bằng cách điều khiển tốc độ, thời gian truy cập, và địa chỉ bộ nhớ để đạt hiệu suất tối đa.
Memory controller được tích hợp trong các bộ vi xử lý (CPU), chipset hoặc một số hệ thống nhúng.
Các chức năng của memory controller bao gồm:
1. Điều khiển tốc độ và thời gian truy cập: Memory controller điều khiển tốc độ truy cập bộ nhớ và
quyết định thời gian truy cập cho mỗi yêu cầu truy cập bộ nhớ.
2. Quản lý băng thông: Memory controller đảm bảo rằng băng thông của bộ nhớ được sử dụng một
cách hiệu quả để đáp ứng yêu cầu truy cập bộ nhớ của hệ thống.
3. Điều khiển truy cập bộ nhớ: Memory controller quản lý việc truy cập bộ nhớ bằng cách đọc và ghi
dữ liệu vào bộ nhớ.
4. Định dạng địa chỉ bộ nhớ: Memory controller cũng hỗ trợ các công nghệ bộ nhớ mới như DDR4,
DDR5, và NVDIMM để đạt hiệu suất tối ưu cho hệ thống. Với vai trò quan trọng trong quản lý bộ
nhớ, memory controller đóng vai trò quan trọng trong hiệu suất toàn hệ thống của máy tính.
1. ĐẶT VẤN ĐỀ
Trong thời đại số hoá hiện nay, máy tính đóng vai trò quan trọng trong đời sống của con người, từ
công việc đến giải trí. Máy tính càng ngày càng được trang bị nhiều tính năng và hiệu suất cao hơn để
đáp ứng nhu cầu của người dùng. Trong quá trình phát triển, bộ nhớ là một thành phần quan trọng nhất
trong hệ thống máy tính, nó đảm bảo rằng dữ liệu được lưu trữ và xử lý một cách hiệu quả.
Tuy nhiên, việc truy cập bộ nhớ đôi khi gặp phải một số vấn đề như thời gian truy cập, tốc độ truy cập,
băng thông và địa chỉ bộ nhớ. Để giải quyết các vấn đề trên, cần có một thành phần quản lý việc truy
cập và giao tiếp giữa bộ nhớ và bộ xử lý, và đó chính là Memory controller.
Memory controller là một thành phần quan trọng trong hệ thống máy tính, chịu trách nhiệm quản lý
việc truy cập và giao tiếp giữa bộ nhớ và bộ xử lý. Memory controller giúp tối ưu việc truy cập bộ nhớ
bằng cách điều khiển tốc độ, thời gian truy cập, và địa chỉ bộ nhớ để đạt hiệu suất tối đa.
Memory controller thường được tích hợp trong các bộ vi xử lý (CPU), chipset hoặc một số hệ thống
nhúng. Nó đóng vai trò quan trọng trong quản lý băng thông của bộ nhớ và việc điều khiển truy cập bộ
nhớ. Memory controller cũng hỗ trợ các công nghệ bộ nhớ mới như DDR4, DDR5 và NVDIMM để
đạt hiệu suất tối ưu cho hệ thống.
Với vai trò quan trọng trong quản lý bộ nhớ, memory controller đóng vai trò quan trọng trong hiệu
suất toàn hệ thống của máy tính. Tuy nhiên, để đạt được hiệu suất tối ưu, cần hiểu rõ về các tính năng,
chức năng và vai trò của Memory controller trong hệ thống máy tính.
Nghiên cứu về Memory controller cũng giúp hiểu rõ hơn về các công nghệ bộ nhớ mới và cách chúng
được hỗ trợ bởi Memory controller. Việc nghiên cứu này sẽ đóng góp vào việc tối ưu hiệu suất của hệ
thống máy tính và cải thiện trải nghiệm người dùng.
2. LỊCH SỬ HÌNH THÀNH VÀ PHÁT TRIỂN
Memory controller là một thành phần quan trọng trong hệ thống máy tính, giúp điều khiển và quản lý
việc truy cập dữ liệu trong bộ nhớ. Trong quá trình phát triển, Memory controller đã trải qua nhiều giai
đoạn khác nhau với sự phát triển của công nghệ bộ nhớ và các yêu cầu của hệ thống máy tính. Dưới
đây là chi tiết lịch sử hình thành và phát triển của Memory controller qua từng thời kì.
1. Thập niên 1980: Xuất hiện Memory controller đầu tiên
Memory controller đầu tiên xuất hiện vào những năm 1980, khi các máy tính đầu tiên sử dụng bộ nhớ
DRAM. Memory controller đầu tiên được tích hợp vào các bo mạch chủ của máy tính, giúp điều khiển
tốc độ và thời gian truy cập bộ nhớ.
2. Thập niên 1990: Thêm chức năng quản lý băng thông và định dạng địa chỉ bộ nhớ
Vào thập niên 1990, Memory controller đã được cải tiến với nhiều chức năng mới, bao gồm quản lý
băng thông và định dạng địa chỉ bộ nhớ. Memory controller được tích hợp vào chipset, giúp tăng tốc
độ truy cập bộ nhớ và cải thiện hiệu suất của hệ thống máy tính.
3. Thập niên 2000: Sự phổ biến của bộ nhớ DDR
Vào thập niên 2000, bộ nhớ DDR đã trở thành tiêu chuẩn mới của hệ thống máy tính, và Memory
controller đã được thiết kế để hỗ trợ các loại bộ nhớ này. Memory controller cũng được tích hợp vào
CPU, giúp tăng tốc độ truy cập bộ nhớ và cải thiện hiệu suất của hệ thống máy tính.
4. Thập niên 2010: Sự phát triển của công nghệ bộ nhớ mới
Vào thập niên 2010, các công nghệ bộ nhớ mới như DDR3 và DDR4 đã được giới thiệu, và Memory
controller đã được cải tiến để hỗ trợ các loại bộ nhớ này. Memory controller cũng được tích hợp vào
các bộ xử lý đa lõi, giúp cải thiện hiệu suất và tăng tốc độ truy cập bộ nhớ.
5. Hiện tại: Tích hợp Memory controller vào CPU
Hiện nay, Memory controller thường được tích hợp vào CPU, giúp tối ưu hóa hiệu suất và tăng tốc độ
truy cập bộ nhớ. Memory controller cũng được thiết kế để hỗ trợ các bộ nhớ mới nhất như DDR5 và
các công nghệ bộ nhớ khác.
Memory controller đã trải qua nhiều giai đoạn phát triển khác nhau, từ khi xuất hiện đầu tiên vào
những năm 1980 cho đến hiện nay. Memory controller đã được cải tiến để hỗ trợ các loại bộ nhớ mới
nhất và tích hợp vào CPU, giúp tối ưu hóa hiệu suất và tăng tốc độ truy cập bộ nhớ.
3. NỘI DUNG NGHIÊN CỨU
Phần này sẽ bao gồm các nội dung chính sau:
A. Vai trò cơ bản của Memory controller:
Memory controller là một thành phần quan trọng trong hệ thống máy tính, giúp điều khiển và quản lý
việc truy cập dữ liệu trong bộ nhớ. Memory controller là một phần của chipset hoặc được tích hợp trực
tiếp vào CPU, và có nhiệm vụ điều khiển các hoạt động liên quan đến bộ nhớ trong hệ thống máy tính.
Memory controller có nhiều chức năng quan trọng, bao gồm:
1. Quản lý băng thông:
Memory controller giúp quản lý lưu lượng thông tin truyền tải giữa bộ nhớ và các thành phần khác của
hệ thống máy tính. Memory controller được thiết kế để tối ưu hóa băng thông và tốc độ truy cập bộ
nhớ, giúp cải thiện hiệu suất của hệ thống máy tính.
2. Định dạng địa chỉ bộ nhớ:
Memory controller định dạng địa chỉ bộ nhớ và giúp điều khiển việc truy cập bộ nhớ. Memory
controller cũng hỗ trợ các loại bộ nhớ khác nhau, bao gồm DDR, DDR2, DDR3, DDR4, và DDR5,
giúp tối ưu hóa khả năng tương thích của hệ thống máy tính.
3. Quản lý tốc độ và thời gian truy cập bộ nhớ:
Memory controller điều khiển tốc độ và thời gian truy cập bộ nhớ để đảm bảo rằng các hoạt động
được thực hiện đúng thời gian và độ chính xác.
4. Điều khiển hoạt động của bộ nhớ:
Memory controller giám sát hoạt động của bộ nhớ để đảm bảo rằng các hoạt động được thực hiện
đúng cách và tránh các lỗi hoặc sự cố xảy ra.
5. Hỗ trợ tính tương thích và tính linh hoạt:
Memory controller được thiết kế để hỗ trợ tính tương thích và tính linh hoạt, giúp tối ưu hóa khả năng
tương thích của hệ thống máy tính và cho phép sử dụng các loại bộ nhớ khác nhau.
Memory controller là một thành phần quan trọng trong hệ thống máy tính, giúp điều khiển và quản lý
việc truy cập dữ liệu trong bộ nhớ. Memory controller giúp tối ưu hóa hiệu suất và tăng tốc độ truy cập
bộ nhớ, cải thiện khả năng tương thích và linh hoạt của hệ thống máy tính.
B. Chức năng và vai trò của Memory controller trong hệ thống máy tính
Memory controller là một thành phần quan trọng của hệ thống máy tính, giúp điều khiển và quản lý
việc truy cập dữ liệu trong bộ nhớ. Memory controller có nhiều chức năng và vai trò quan trọng trong
hệ thống máy tính, bao gồm:
1. Điều khiển và quản lý truy cập bộ nhớ:
Memory controller có nhiệm vụ điều khiển và quản lý việc truy cập dữ liệu trong bộ nhớ. Memory
controller giúp định dạng địa chỉ bộ nhớ và điều khiển tốc độ và thời gian truy cập bộ nhớ để đảm bảo
rằng các hoạt động được thực hiện đúng thời gian và độ chính xác.
2. Tối ưu hóa tốc độ truy cập bộ nhớ:
Memory controller giúp tối ưu hóa tốc độ truy cập bộ nhớ bằng cách quản lý băng thông và đảm bảo
rằng các hoạt động được thực hiện đúng cách.
3. Hỗ trợ khả năng tương thích và tính linh hoạt:
Memory controller được thiết kế để hỗ trợ khả năng tương thích và tính linh hoạt, giúp tối ưu hóa khả
năng tương thích của hệ thống máy tính và cho phép sử dụng các loại bộ nhớ khác nhau.
4. Đảm bảo tính ổn định và độ tin cậy của hệ thống:
Memory controller giám sát hoạt động của bộ nhớ để đảm bảo rằng các hoạt động được thực hiện
đúng cách và tránh các lỗi hoặc sự cố xảy ra. Điều này giúp đảm bảo tính ổn định và độ tin cậy của hệ
thống máy tính.
5. Tối ưu hóa hiệu suất của hệ thống máy tính:
Memory controller giúp tối ưu hóa hiệu suất của hệ thống máy tính bằng cách cải thiện tốc độ truy cập
bộ nhớ và giảm thiểu thời gian chờ đợi.
6. Hỗ trợ tính năng đa kênh và đa khe cắm:
Memory controller cũng hỗ trợ tính năng đa kênh và đa khe cắm, cho phép sử dụng nhiều bộ nhớ cùng
một lúc để tăng cường hiệu suất của hệ thống.
Memory controller có vai trò quan trọng và nhiều chức năng trong hệ thống máy tính, giúp tối ưu hóa
tốc độ truy cập bộ nhớ, đảm bảo tính ổn định và độ tin cậy của hệ thống, tối ưu hóa hiệu suất và hỗ trợ
tính năng đa kênh và đa khe cắm.
C. Các loại Memory controller và cách chúng hoạt động
Các loại Memory controller phổ biến bao gồm Memory controller tích hợp trong CPU, chipset và các
hệ thống nhúng. Chúng ta cũng sẽ tìm hiểu về các loại bộ nhớ bao gồm SDRAM, DDR, và RDIMM.
Dưới đây là chuẩn Memory controller dòng DDR dùng phổ biến trong máy tính, điện thoại,... và cách
chúng hoạt động:
1. DDR Memory controller:
DDR Memory controller là loại Memory controller được thiết kế để hỗ trợ các loại bộ nhớ DDR
(Double Data Rate). DDR Memory controller sử dụng cơ chế truyền dữ liệu kép để tăng tốc độ truy
cập bộ nhớ. DDR Memory controller cũng hỗ trợ tính năng đa kênh để tăng cường hiệu suất của hệ
thống.
2. DDR2 Memory controller:
DDR2 Memory controller là một phiên bản cải tiến của DDR Memory controller, được thiết kế để hỗ
trợ các loại bộ nhớ DDR2. DDR2 Memory controller sử dụng cơ chế truyền dữ liệu kép và tốc độ truy
cập bộ nhớ nhanh hơn so với DDR Memory controller.
3. DDR3 Memory controller:
DDR3 Memory controller là một phiên bản tiếp theo của DDR2 Memory controller, được thiết kế để
hỗ trợ các loại bộ nhớ DDR3. DDR3 Memory controller cải tiến tốc độ truy cập bộ nhớ và hỗ trợ tính
năng đa kênh để tăng cường hiệu suất của hệ thống.
4. DDR4 Memory controller:
DDR4 Memory controller là loại Memory controller mới nhất, được thiết kế để hỗ trợ các loại bộ nhớ
DDR4. DDR4 Memory controller cải tiến tốc độ truy cập bộ nhớ và giảm thiểu độ trễ, giúp tăng hiệu
suất của hệ thống máy tính.
Cách mà các loại Memory controller hoạt động bao gồm các bước sau:
1. Xử lý yêu cầu truy cập bộ nhớ: Memory controller nhận yêu cầu truy cập bộ nhớ từ các thành
phần khác trong hệ thống máy tính, như CPU hay card đồ họa.
2. Định dạng địa chỉ bộ nhớ: Memory controller định dạng địa chỉ bộ nhớ để xác định vị trí của
dữ liệu trong bộ nhớ.
3. Kiểm tra tính hợp lệ của yêu cầu truy cập: Memory controller kiểm tra tính hợp lệ của yêu cầu
truy cập bằng cách kiểm tra xem dữ liệu đó có tồn tại trong bộ nhớ hay không.
4. Điều khiển truy cập bộ nhớ: Memory controller điều khiển truy cập bộ nhớ bằng cách giải mã
địa chỉ bộ nhớ và gửi yêu cầu đến bộ nhớ để lấy dữ liệu.
5. Truyền dữ liệu: Memory controller truyền dữ liệu từ bộ nhớ đến các thành phần khác trong hệ
thống máy tính.

D. Các công nghệ bộ nhớ mới và cách Memory controller hỗ trợ chúng
Các công nghệ bộ nhớ mới được phát triển để đáp ứng nhu cầu sử dụng của các ứng dụng máy tính
hiện đại. Memory controller là một thành phần quan trọng của hệ thống máy tính, và phải được thiết
kế để hỗ trợ các công nghệ bộ nhớ mới này. Dưới đây là các công nghệ bộ nhớ mới và cách Memory
controller hỗ trợ chúng:
1. HBM (High Bandwidth Memory):
High Bandwidth Memory là công nghệ bộ nhớ mới được phát triển bởi AMD và Hynix, với khả
năng tăng tốc độ truy cập bộ nhớ và giảm độ trễ. Memory controller được thiết kế để hỗ trợ HBM
bằng cách cải thiện khả năng truy cập bộ nhớ và băng thông.
2. GDDR (Graphics Double Data Rate) Memory:
GDDR Memory là loại bộ nhớ được thiết kế đặc biệt cho các ứng dụng đồ họa và trò chơi. Memory
controller được thiết kế để hỗ trợ GDDR Memory bằng cách cải thiện khả năng truy cập bộ nhớ và
băng thông, đồng thời tối ưu hóa tính năng đa kênh để tăng cường hiệu suất.
3. HMC (Hybrid Memory Cube):
Hybrid Memory Cube là công nghệ bộ nhớ mới được phát triển bởi Intel và Micron, với khả năng
tăng tốc độ truy cập bộ nhớ và giảm độ trễ. Memory controller được thiết kế để hỗ trợ HMC bằng
cách cải thiện khả năng truy cập bộ nhớ và băng thông, đồng thời tối ưu hóa tính năng đa kênh để
tăng cường hiệu suất.
4. DDR5 Memory:
DDR5 Memory là loại bộ nhớ mới nhất, được phát triển để đáp ứng nhu cầu sử dụng của các ứng
dụng máy tính hiện đại. Memory controller được thiết kế để hỗ trợ DDR5 Memory bằng cách cải
thiện khả năng truy cập bộ nhớ và băng thông, đồng thời tối ưu hóa tính năng đa kênh để tăng
cường hiệu suất.
Các công nghệ bộ nhớ mới được phát triển để đáp ứng nhu cầu sử dụng của các ứng dụng máy tính
hiện đại. Memory controller là một thành phần quan trọng của hệ thống máy tính, và phải được thiết
kế để hỗ trợ các công nghệ bộ nhớ mới này bằng cách cải thiện khả năng truy cập bộ nhớ và băng
thông, đồng thời tối ưu hóa tính năng đa kênh để tăng cường hiệu suất.
E. Hiệu suất và ảnh hưởng của Memory controller đến toàn hệ thống máy tính
Hiệu suất của hệ thống máy tính phụ thuộc nhiều vào Memory controller, vì nó có nhiệm vụ điều
khiển và quản lý việc truy cập dữ liệu trong bộ nhớ. Memory controller ảnh hưởng đến hiệu suất của
toàn hệ thống máy tính theo các cách sau:
1. Tốc độ truy cập bộ nhớ:
Memory controller có tác động trực tiếp đến tốc độ truy cập bộ nhớ. Nếu Memory controller hoạt
động tốt, nó có thể tăng tốc độ truy cập bộ nhớ và giảm độ trễ, giúp cải thiện hiệu suất của hệ
thống máy tính.
2. Băng thông:
Băng thông của Memory controller cũng ảnh hưởng đến hiệu suất của hệ thống máy tính. Nếu
Memory controller có băng thông lớn, nó có thể cho phép truy cập dữ liệu nhanh hơn và giảm
thiểu thời gian chờ đợi, giúp tăng cường hiệu suất của hệ thống.
3. Tính tương thích:
Memory controller phải tương thích với các loại bộ nhớ khác nhau để đảm bảo tính tương thích
của hệ thống máy tính. Nếu Memory controller không tương thích với bộ nhớ, nó sẽ gây ra sự cố
và giảm hiệu suất của hệ thống.
4. Tính ổn định và độ tin cậy:
Memory controller cũng phải đảm bảo tính ổn định và độ tin cậy của hệ thống máy tính. Nếu
Memory controller gặp sự cố hoặc không hoạt động đúng cách, nó có thể gây ra các lỗi và sự cố,
ảnh hưởng đến hiệu suất và độ tin cậy của hệ thống.
Memory controller có tác động rất lớn đến hiệu suất của hệ thống máy tính. Nếu Memory controller
hoạt động tốt, nó có thể tăng tốc độ truy cập bộ nhớ, giảm độ trễ, tăng băng thông và tối ưu hóa tính
tương thích và độ tin cậy của hệ thống. Ngược lại, nếu Memory controller gặp sự cố hoặc không hoạt
động đúng cách, nó có thể gây ra các lỗi và sự cố, ảnh hưởng đến hiệu suất và độ tin cậy của hệ thống.
F. GIỚI HẠN CỦA MEMORY CONTROLLER
1. Giới hạn về hiệu suất:
Memory controller có thể bị giới hạn về hiệu suất khi sử dụng các loại bộ nhớ không tương thích hoặc
các bộ nhớ có tốc độ chậm hơn. Những bộ nhớ này có thể giới hạn băng thông và tốc độ truy cập của
hệ thống, ảnh hưởng đến hiệu suất của Memory controller.
2. Giới hạn về dung lượng bộ nhớ:
Memory controller có giới hạn về dung lượng bộ nhớ tối đa mà nó có thể hỗ trợ. Nếu hệ thống sử dụng
quá nhiều bộ nhớ, Memory controller có thể không đủ khả năng để quản lý được tất cả các bộ nhớ này,
dẫn đến giảm hiệu suất và tốc độ truy cập.
3. Giới hạn về tốc độ truy cập:
Memory controller cũng có thể bị giới hạn về tốc độ truy cập, đặc biệt là khi truy cập đến các bộ nhớ
từ xa hoặc khi sử dụng các loại bộ nhớ tốc độ cao. Những giới hạn này có thể ảnh hưởng đến hiệu suất
của Memory controller và hệ thống máy tính.
4. Giới hạn về công nghệ bộ nhớ:
Memory controller cũng có thể bị giới hạn bởi các công nghệ bộ nhớ cũ hơn hoặc không tương thích.
Những giới hạn này có thể ảnh hưởng đến khả năng tương thích và khả năng hỗ trợ của Memory
controller đối với các bộ nhớ mới và các công nghệ mới.
5. Giới hạn về tương thích phần cứng:
Memory controller cũng có thể bị giới hạn bởi tương thích phần cứng trong hệ thống máy tính, bao
gồm chipset, CPU và các thành phần khác. Những giới hạn này có thể ảnh hưởng đến tính tương thích
và khả năng hỗ trợ của Memory controller với các thành phần phần cứng khác trong hệ thống máy
tính.
Tóm lại, phần này đã tập trung vào việc xác định các giới hạn của Memory controller trong hệ thống
máy tính, bao gồm giới hạn về hiệu suất, dung lượng bộ nhớ, tốc độ truy cập, công nghệ bộ nhớ và
tương thích phần cứng. Các giới hạn này cần được xem xét để đảm bảo tính tương thích và hiệu suất
của hệ thống máy tính và Memory controller.

G. GIỚI HẠN NGHIÊN CỨU


Quá trình tìm hiểu và nghiên cứu về Memory controller có thể gặp phải nhiều khó khăn và thuận lợi
khác nhau. Dưới đây là các khó khăn và thuận lợi thường gặp trong quá trình tìm hiểu và nghiên cứu
về Memory controller:
1. Thuận lợi:
- Có nhiều tài liệu và thông tin đa dạng về Memory controller được chia sẻ công khai trên các trang
web, tạp chí và các nguồn tài nguyên trực tuyến khác.
- Có sự phát triển của các công nghệ tiên tiến và các phần mềm mô phỏng để giúp cho việc nghiên cứu
và phân tích kết quả được dễ dàng hơn.
- Có sự hỗ trợ của cộng đồng nghiên cứu và các chuyên gia trong lĩnh vực liên quan đến Memory
controller để chia sẻ kiến thức và kinh nghiệm.
2. Khó khăn:
- Khó khăn trong việc truy cập vào các tài liệu chính thống và thông tin liên quan đến Memory
controller, đặc biệt là các tài liệu bảo mật và độc quyền.
- Khó khăn trong việc thực hiện nghiên cứu thực nghiệm về Memory controller do yêu cầu phải sử
dụng các thiết bị và công nghệ phức tạp.
- Khó khăn trong việc hiểu và áp dụng các kiến thức về điện tử, vi điều khiển và các lĩnh vực liên quan
đến Memory controller để có thể nghiên cứu và phân tích kết quả.
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1. GIỚI THIỆU MẠCH DE0-NANO
2.1.1. Giới thiệu
DE0-Nano là một bo mạch phát triển dựa trên nền tảng FPGA (Field-Programmable Gate
Array) được sản xuất bởi Terasic, một công ty chuyên về thiết kế bo mạch phát triển và giáo dục trong
lĩnh vực FPGA. Nó được thiết kế nhỏ gọn và linh hoạt, có khả năng lập trình lại theo ý muốn, và cung
cấp một môi trường thí nghiệm để nghiên cứu, phát triển và học tập trong lĩnh vực vi điều khiển, hệ
thống số và thiết kế logic.
Bo mạch DE0-Nano có sự tích hợp nhiều thành phần như FPGA, bộ nhớ, các giao tiếp I/O,
điều khiển nguồn và các phụ kiện khác. Nó hỗ trợ việc kết nối và tương tác với các thiết bị và mô-đun
ngoại vi bên ngoài như cảm biến, màn hình, bàn phím, chuột, và nhiều loại giao tiếp khác.
2.1.2. Ứng dụng của DE0-Nano
DE0-Nano có nhiều ứng dụng trong các lĩnh vực khác nhau. Dưới đây là một số ứng dụng phổ
biến của DE0-Nano:
- Hệ thống nhúng: DE0-Nano được sử dụng để phát triển các hệ thống nhúng, bao gồm vi điều
khiển nhúng, hệ thống định vị toàn cầu (GPS), hệ thống điều khiển robot và hệ thống thu phát không
dây.
- Xử lý tín hiệu và hình ảnh: DE0-Nano có khả năng xử lý tín hiệu và hình ảnh, cho phép
nghiên cứu và phát triển các ứng dụng liên quan đến xử lý âm thanh, xử lý hình ảnh, và trí tuệ nhân
tạo.
- Hệ thống điều khiển và điện tử công suất: DE0-Nano được sử dụng để phát triển các hệ
thống điều khiển và điện tử công suất, bao gồm hệ thống điều khiển động cơ, biến tần, và hệ thống
mạch điện tử công suất.
- Giáo dục và nghiên cứu: DE0-Nano được sử dụng trong môi trường giáo dục để giảng dạy vi
điều khiển, hệ thống số và thiết kế logic. Nó cũng được sử dụng trong nghiên cứu và thử nghiệm các ý
tưởng mới trong lĩnh vực này.
- IoT và dự án thiết bị thông minh: DE0-Nano được sử dụng để phát triển các ứng dụng IoT và
dự án thiết bị thông minh, bao gồm hệ thống giám sát môi trường, hệ thống nhà thông minh và các
ứng dụng liên quan đến Internet of Things.
DE0-Nano là một nền tảng phát triển linh hoạt cho việc nghiên cứu, phát triển và thử nghiệm
các ứng dụng liên quan đến vi điều khiển, hệ thống số và thiết kế logic. Với khả năng tương thích và
tính linh hoạt cao, nó có thể được tùy chỉnh và ứng dụng trong nhiều lĩnh vực khác nhau.
2.1.3. Phần cứng của DE0-Nano
Hình 1. Sơ đồ PCB linh kiện của bo mạch DE0-Nano (Mặt trước)

Hình 2. Sơ đồ PCB linh kiện của bo mạch DE0-Nano (Mặt dưới)


DE0-Nano có các thành phần phần cứng chính sau:
-FPGA (Field-Programmable Gate Array): DE0-Nano được trang bị một FPGA để thực hiện
các chức năng logic và xử lý dữ liệu. FPGA trên DE0-Nano thuộc loại Altera Cyclone IV và có 22,320
phần tử logic, 594 bộ nhớ nhúng (Kbit), 66 Hệ số nhân 18 x 18 được nhúng, 4 PLL đa năng, 153 chân
I/O FPGA tối đa
-SDRAM (Synchronous Dynamic Random Access Memory): DE0-Nano được trang bị 32 MB
SDRAM để lưu trữ dữ liệu và hỗ trợ việc thực hiện các chương trình và tính toán phức tạp.
-EEPROM (Electrically Erasable Programmable Read-Only Memory): DE0-Nano có một
EEPROM với dung lượng 2 Kb. EEPROM được sử dụng để lưu trữ dữ liệu không bị mất khi bo mạch
mất nguồn.
-Serial Configuration Memory Device: Đây là một thiết bị bộ nhớ nối tiếp với dung lượng 64
Mb, được sử dụng để lưu trữ các cấu hình cho FPGA và cho phép bo mạch khởi động các chương
trình FPGA.
-Analog Devices 13-bit 3-axis Accelerometer: DE0-Nano tích hợp một cảm biến gia tốc 3 trục
có độ phân giải 13 bit từ Analog Devices. Cảm biến này được sử dụng để đo gia tốc và cung cấp thông
tin về chuyển động.
-National Semiconductor 8-channel 12-bit A/D Converter: Bo mạch DE0-Nano cũng tích hợp
một bộ chuyển đổi tương tự/số (A/D converter) của National Semiconductor với 8 kênh và độ phân
giải 12 bit. Bộ chuyển đổi này cho phép bo mạch giao tiếp với các tín hiệu từ các cảm biến hoặc các
thiết bị khác.
-USB Blaster: DE0-Nano có sẵn một USB Blaster tích hợp, cho phép lập trình FPGA và giao
tiếp với bo mạch thông qua cổng USB.
-Các đầu nối và các thành phần khác: DE0-Nano được trang bị các đầu vào và đầu ra bao gồm
2 nút nhấn, 8 đèn LED xanh và một bộ 4 công tắc DIP. Nó cũng có các header mở rộng để kết nối với
các thẻ con Terasic khác hoặc các thiết bị mở rộng khác.
2.1.4. Đặc điểm SDRAM trên DE0-Nano
DE0-Nano sử dụng bộ nhớ SDRAM (Synchronous Dynamic Random-Access Memory) để lưu
trữ và truy xuất dữ liệu. Dưới đây là một số thông tin về SDRAM trên DE0-Nano:
-Dung lượng SDRAM: DE0-Nano có 32MB SDRAM, tức là 32 megabyte (MB) bộ nhớ
SDRAM. Dung lượng này cung cấp không gian đủ cho lưu trữ và xử lý dữ liệu trong các ứng dụng
FPGA.
-Cấu trúc SDRAM: SDRAM trên DE0-Nano được tổ chức theo cấu trúc ma trận hàng-cột. Dữ
liệu được lưu trữ trong các hàng và cột tương ứng, và các tín hiệu RAS và CAS được sử dụng để xác
định vị trí truy cập dữ liệu.
-Tốc độ truy cập: SDRAM trên DE0-Nano có tốc độ truy cập nhanh và hiệu suất cao. Tốc độ
truy cập của SDRAM được đo bằng đơn vị megahertz (MHz) và xác định khả năng truy xuất dữ liệu
trong một khoảng thời gian nhất định.
-Đồng bộ hóa: SDRAM trên DE0-Nano hoạt động theo nguyên tắc đồng bộ với FPGA và hệ
thống chủ khác trên bo mạch. Điều này đảm bảo rằng việc truy cập và truyền dữ liệu giữa FPGA và
SDRAM diễn ra đúng thời gian và tuân theo các tín hiệu điều khiển tương ứng.
-Quản lý bộ nhớ: Memory controller của DE0-Nano được sử dụng để quản lý và điều khiển
việc truy cập dữ liệu vào và ra khỏi SDRAM. Memory controller chịu trách nhiệm định vị vị trí nhớ,
điều khiển tín hiệu RAS và CAS, và thực hiện hoạt động đọc/ghi dữ liệu trên SDRAM.
SDRAM trên DE0-Nano là một phần cốt lõi của hệ thống và được sử dụng để lưu trữ dữ liệu
và hỗ trợ các hoạt động tính toán và xử lý trong các ứng dụng FPGA. Nó cung cấp không gian lưu trữ
lớn và tốc độ truy cập nhanh, đáp ứng yêu cầu của các dự án nhúng và thiết kế linh hoạt trên bo mạch
DE0-Nano.
2.2. ĐẶC ĐIỂM VÀ NGUYÊN LÝ HOẠT ĐỘNG CỦA MEMORY CONTROLLER TRÊN
SDRAM CỦA KIT DE0-NANO
2.2.1. Đặc điểm của Memory controller trên SDRAM của DE0-Nano
Một số đặc điểm của memory controller SDRAM trên DE0-Nano bao gồm:

 Loại bộ nhớ chính: DDR2 SDRAM


 Dung lượng bộ nhớ chính: 256 MB (256 Megabit)
 Tần số đồng hồ của bộ nhớ chính: 100 MHz
 Chiều rộng dữ liệu: 16 bit song song
 Độ trễ CAS: 2 chu kỳ đồng hồ
 Chip chọn: chọn bằng cách set mức logic thấp
 Cấu trúc sắp xếp bộ nhớ: 4 ngân hàng bộ nhớ
 Bộ nhớ chính kết nối với FPGA Cyclone IV Altera hoạt động như bộ điều khiển bộ nhớ chính
 Số chân I/O FPGA sử dụng trong ngân hàng bộ nhớ: Từ 0 đến 5 (Mem0 - 5)
 Số chân FPGA: 144
 Chiều rộng đường truyền địa chỉ: 16 bit (A0- A15)
 Tín hiệu điều khiển: Bao gồm các tín hiệu chọn chip, đánh địa chỉ hàng và cột, bật ghi, chọn
data theo mức logic, chọn byte, cho phép xung clock và xung clock.
 Chiều rộng đường truyền dữ liệu: 16 bit (từ DQ0 đến DQ15)
 Tốc độ làm mới: 128kHz
 Thời gian truy cập đọc tối đa: 2,0 ns
 Thời gian truy cập ghi tối đa: 2,6 ns
 Công suất chờ: 25 mW
2.2.2. Nguyên lý hoạt động của Memory controller SDRAM trên DE0-Nano
Memory controller SDRAM trên DE0-Nano hoạt động theo một số bước cơ bản. Dưới đây là
nguyên lý hoạt động cơ bản của memory controller SDRAM trên DE0-Nano:
1. Đồng bộ hóa: Trước khi bắt đầu truy cập bộ nhớ SDRAM, memory controller SDRAM trên
DE0-Nano phải đồng bộ hóa với FPGA và hệ thống khác trên bo mạch DE0-Nano để đảm bảo rằng
các tín hiệu điều khiển được đưa ra đúng thời điểm và đồng bộ với chu kỳ xung nhịp của bộ nhớ
SDRAM.
2. Thực hiện lệnh truy cập bộ nhớ: Memory controller SDRAM trên DE0-Nano thực hiện các
lệnh truy cập bộ nhớ, bao gồm đọc và ghi dữ liệu vào bộ nhớ SDRAM. Nó điều khiển việc chuyển đổi
địa chỉ bộ nhớ, ghi dữ liệu vào các vị trí nhớ tương ứng và đọc dữ liệu từ các vị trí nhớ. Các lệnh truy
cập này được điều khiển bởi phần mềm nhúng (firmware) được lập trình sẵn trên bo mạch.
3. Điều khiển tín hiệu: Memory controller SDRAM trên DE0-Nano điều khiển các tín hiệu
điều khiển để thực hiện các lệnh truy cập bộ nhớ. Các tín hiệu này bao gồm tín hiệu CK (xung nhịp),
tín hiệu CKE (xác nhận xung nhịp), tín hiệu CS (chọn bộ nhớ), tín hiệu CAS (lệnh truy cập hàng), tín
hiệu RAS (lệnh truy cập cột) và tín hiệu WE (lệnh ghi dữ liệu) để định vị và thực hiện các hoạt động
đọc/ghi dữ liệu trên SDRAM.
4. Điều chỉnh thời gian trễ: Memory controller SDRAM trên DE0-Nano có thể điều chỉnh thời
gian trễ giữa các tín hiệu điều khiển để đảm bảo rằng các tín hiệu được đưa ra đúng thời điểm. Thời
gian trễ này phụ thuộc vào tần số bus và loại bộ nhớ SDRAM được sử dụng.
5. Quản lý dữ liệu: Băng thông và tốc độ truy cập: Memory controller được thiết kế để tương
thích với các thông số băng thông và tốc độ truy cập của SDRAM trên DE0-Nano. Nó đảm bảo rằng
các dữ liệu được truy cập đúng với địa chỉ của chúng và đưa ra các tín hiệu điều khiển phù hợp để truy
cập dữ liệu một cách hiệu quả.
6. Kiểm tra và sửa lỗi: Memory controller SDRAM trên DE0-Nano có khả năng kiểm tra và
sửa lỗi dữ liệu trong bộ nhớ SDRAM. Nó sử dụng các thuật toán ECC (Error Correction Code) để phát
hiện và sửa chữa các lỗi dữ liệu.
7. Mở rộng và tương thích: Memory controller trên DE0-Nano cũng hỗ trợ các tính năng mở
rộng và tương thích với các thiết bị ngoại vi khác như cảm biến, các thiết bị giao tiếp và đầu vào/đầu
ra khác thông qua các giao diện và kết nối có sẵn trên bo mạch.
Tóm lại, memory controller SDRAM trên DE0-Nano là một thành phần quan trọng của hệ
thống, được sử dụng để quản lý, tối ưu hóa việc truy cập và điều khiển hoạt động của bộ nhớ SDRAM
trên bo mạch. Nó thực hiện các lệnh truy cập bộ nhớ và điều khiển các tín hiệu điều khiển để đảm bảo
rằng các dữ liệu được truy cập một cách nhanh chóng và hiệu quả. Ngoài ra, nó còn có khả năng kiểm
tra và sửa lỗi dữ liệu trong bộ nhớ SDRAM để đảm bảo tính ổn định và độ tin cậy của hệ thống.
BONUS
CHƯƠNG 5

Memory controller là một thành phần quan trọng trong kiến trúc hệ thống máy tính, đóng vai trò quản
lý và điều khiển truy cập dữ liệu trong bộ nhớ. Memory controller có nhiều tác động đến hiệu suất của
toàn hệ thống máy tính, bao gồm tốc độ truy cập bộ nhớ, băng thông, tính tương thích, tính ổn định và
độ tin cậy.

Tốc độ truy cập bộ nhớ là thời gian mà Memory controller cần để truy cập dữ liệu trong bộ nhớ. Nếu
Memory controller hoạt động tốt, nó có thể tăng tốc độ truy cập bộ nhớ và giảm độ trễ, giúp cải thiện
hiệu suất của hệ thống máy tính. Để tăng tốc độ truy cập bộ nhớ, Memory controller có thể sử dụng
các giải pháp như bộ đệm (cache), kỹ thuật đa kênh (dual-channel) và các công nghệ bộ nhớ mới như
HBM, GDDR, HMC và DDR5.

Băng thông là khả năng truyền dữ liệu giữa bộ nhớ và CPU. Memory controller có tác động trực tiếp
đến băng thông của hệ thống máy tính. Nếu Memory controller có băng thông lớn, nó có thể cho phép
truy cập dữ liệu nhanh hơn và giảm thiểu thời gian chờ đợi, giúp tăng cường hiệu suất của hệ thống.
Tuy nhiên, băng thông của Memory controller cũng phải tương thích với băng thông của bộ nhớ để
đảm bảo hiệu suất tối đa.

Tính tương thích của Memory controller là khả năng hoạt động với các loại bộ nhớ khác nhau.
Memory controller phải được thiết kế để tương thích với các chuẩn bộ nhớ như DDR3, DDR4,
DDR5... Nếu Memory controller không tương thích với bộ nhớ, nó sẽ gây ra sự cố và giảm hiệu suất
của hệ thống.

Tính ổn định và độ tin cậy của Memory controller là yếu tố quan trọng đối với hệ thống máy tính. Nếu
Memory controller gặp sự cố hoặc không hoạt động đúng cách, nó có thể gây ra các lỗi và sự cố, ảnh
hưởng đến hiệu suất và độ tin cậy của hệ thống. Để đảm bảo tính ổn định và độ tin cậy của Memory
controller, các nhà sản xuất phải thực hiện kiểm tra nghiêm ngặt và đảm bảo chất lượng sản phẩm.
Trong tương lai, Memory controller dự kiến sẽ tiếp tục được phát triển và cải tiến để đáp ứng nhu cầu
sử dụng của các ứng dụng máy tính hiện đại. Với việc xuất hiện các công nghệ bộ nhớ mới như HBM,
GDDR, HMC và DDR5, Memory controller phải được thiết kế để hỗ trợ các công nghệ bộ nhớ mới
này.

Ngoài ra, Memory controller cũng cần được tối ưu hóa để tương thích với các kiến trúc máy tính mới
như kiến trúc tính toán đám mây và máy tính siêu dữ liệu. Memory controller cũng có thể được tích
hợp vào các vi xử lý để giảm chi phí và tăng tốc độ truy cập bộ nhớ.

Vì vậy, Memory controller là một đề tài rất quan trọng và đầy triển vọng trong ngành công nghiệp
máy tính, và đang được nghiên cứu và phát triển mạnh mẽ để cải thiện hiệu suất của hệ thống máy tính
trong tương lai.

You might also like