12/10/2022

Lượt xem 2442

Tùy chọn bộ nhớ cho các hệ thống nhúng: Cách chọn cấu hình bộ nhớ phù hợp

Chọn bộ nhớ cho một hệ thống nhúng là một trong những quyết định quan trọng. Với nhiều năm kinh nghiệm tư vấn cấu hình phần cứng máy tính, thông số kỹ thuật về bộ nhớ nhúng, nexcom.vn chia sẻ một vài thông tin hữu ích về việc chọn đúng tùy chọn cho hệ thống của bạn.

 

  • Các loại bộ nhớ mà các hệ thống nhúng sử dụng
  • Sự khác biệt giữa SRAM và DRAM
  • Cách chọn kết hợp bộ nhớ phù hợp cho hệ thống nhúng

 

Bộ nhớ nhúng là gì?

Bộ nhớ nhúng (embedded memory) là bộ nhớ mà bộ xử lý của thiết bị nhúng sử dụng. Bộ nhớ có thể được lưu trữ trên hệ thống SoC cho thiết bị nhúng hoặc nó có thể riêng biệt.

 

Bộ nhớ Volatile vs. non-volatile memory

Bộ nhớ Volatile có thể chứa thông tin được lưu trữ miễn là nó duy trì nguồn điện. Bộ nhớ non-Volatile giữ thông tin được lưu trữ ngay cả khi nguồn điện tắt.

Khi nguồn điện tắt, bộ nhớ Volatile mất dữ liệu. Bộ nhớ truy cập ngẫu nhiên (RAM) là một loại bộ nhớ Volatile.

Các kỹ sư sử dụng bộ nhớ non-volatile trong các hệ thống nhúng để lưu trữ mã và các dữ liệu khác mà thiết bị luôn cần, bao gồm sau khi hệ thống khởi động lại. Ví dụ: bộ nhớ non-volatile thường giữ cài đặt cấu hình cho hệ thống.

Bộ nhớ chính so với bộ nhớ phụ trong máy tính

Bộ nhớ chính là bộ nhớ nội bộ chính của hệ thống máy tính. Đơn vị xử lý trung tâm của hệ thống (CPU) trực tiếp truy cập bộ nhớ chính. Bộ nhớ thứ cấp thường nằm trong một thiết bị lưu trữ bên ngoài. CPU không truy cập trực tiếp bộ nhớ thứ cấp.

 

CPU có thể truy cập bộ nhớ chính một cách nhanh chóng, nhưng bộ nhớ chính thường là bộ nhớ volatile. Điều đó có nghĩa là thiết bị mất dữ liệu khi nó mất điện. Bộ nhớ thứ cấp là bộ nhớ non-volatile, có nghĩa là nó giữ lại dữ liệu của nó ngay cả sau khi mất điện. So với bộ nhớ chính, bộ nhớ phụ tương đối chậm.

Nhiều hệ thống nhúng và các đơn vị vi điều khiển mà các kỹ sư sử dụng trong các hệ thống nhúng hiện nay có tất cả bộ nhớ của họ có thể xử lý trực tiếp bởi bộ xử lý chính.

 

Bộ nhớ chính trong các hệ thống nhúng

Bộ nhớ chính trong các hệ thống nhúng thường là một loại RAM. Các loại RAM phổ biến nhất là Bộ nhớ DRAM và Bộ nhớ SRAM.

Sự khác biệt giữa SRAM và DRAM

Cả SRAM và DRAM đều là bộ nhớ dễ bay hơi. Nhưng có sự khác biệt chính giữa hai - đặc biệt là về tốc độ và chi phí của họ.

SRAM: SRAM cung cấp thời gian truy cập cực nhanh cho bộ xử lý, nhanh hơn khoảng bốn lần so với DRAM. Bộ nhớ cũng giữ lại dữ liệu của nó miễn là nó có năng lượng điện. Nó sử dụng ít năng lượng hơn nhưng đắt hơn DRAM. Nói chung, các kỹ sư sử dụng SRAM trong các thiết bị nơi tốc độ truy cập là rất quan trọng. SRAM thường được nhúng vào một hệ thống trên chip hoặc chip vi điều khiển.

DRAM: DRAM chậm hơn SRAM và ít tốn kém hơn. Nó giữ lại dữ liệu trong một thời gian ngắn, nói chung từ vài mili giây đến vài giây - ngay cả khi nó có sức mạnh không đổi. Các kỹ sư làm cho DRAM hoạt động giống SRAM hơn bằng cách sử dụng bộ điều khiển DRAM. Bộ điều khiển DRAM liên tục làm mới dữ liệu được lưu trữ trong DRAM, vì vậy dữ liệu không bị mất. Chi phí DRAM thấp hơn so với SRAM có nghĩa là các kỹ sư sử dụng nhiều DRAM hơn khi thiết bị của họ cần một lượng lớn bộ nhớ.

SDRAM: Bộ nhớ truy cập ngẫu nhiên động đồng bộ (SDRAM), là loại DRAM được sử dụng phổ biến nhất. Đó là DRAM đồng bộ hóa với đồng hồ vi xử lý trước khi nó phản hồi. Điều này thường có nghĩa là bộ xử lý có thể thực hiện nhiều hướng dẫn hơn trong một khoảng thời gian đã đặt.

SRAM so với DRAM trong các hệ thống nhúng

Nhiều hệ thống nhúng sử dụng cả hai loại RAM. Họ thường có thể sử dụng một khối nhỏ (small block) SRAM đắt hơn nhưng nhanh hơn dọc theo các đường dẫn quan trọng và một khối DRAM lớn hơn cho các chức năng khác. Nhiều hệ thống sẽ có ít hơn 10% tổng số RAM của chúng là SRAM.

Memory for embedded systems: SRAM vs. DRAM

 

Vai trò của RAM và ROM trong một hệ thống nhúng là gì?

Các kỹ sư sử dụng RAM trong các hệ thống nhúng để chạy các chương trình và lưu trữ dữ liệu. Các kỹ sư sử dụng bộ nhớ chỉ đọc, hoặc ROM, để lưu trữ dữ liệu liên tục.

 

Các loại bộ nhớ trong các hệ thống nhúng

Các loại bộ nhớ trong các hệ thống nhúng thường rơi vào hai loại: volatile so với non-volatile. Trong các danh mục đó là nhiều loại bộ nhớ RAM và ROM. Dưới đây là chi tiết về các loại bộ nhớ khác nhau trong các danh mục đó.

RAM

Dưới đây là các loại RAM mà hệ thống nhúng có thể sử dụng:

 

SRAM: Bộ nhớ volatile memory nhanh nhất, đủ nhanh để hoạt động gần với tốc độ của bộ xử lý. Nó cũng đòi hỏi ít sức mạnh hơn DRAM, nhưng nó cũng đắt hơn. Các kỹ sư sử dụng nó theo những cách hạn chế hơn trong các hệ thống nhúng.

DRAM: Bộ nhớ này lưu trữ thông tin về tụ điện và transistor. DRAM chậm hơn SRAM nhưng cũng có giá thấp hơn nhiều.

SDRAM: Loại DRAM này đồng bộ với bus của hệ thống nhúng. SDRAM sử dụng ít không gian hơn trên chip so với SRAM. Nhưng nó sử dụng nhiều năng lượng hơn, một phần vì nó phải liên tục làm mới.

 

ROM

Đây là những loại bộ nhớ non-volatile mà các hệ thống nhúng có thể sử dụng:

 

Masked ROM: Với bộ nhớ này, các nhà sản xuất ghi dữ liệu lên chip bộ nhớ, sau đó không thể thay đổi. Masked ROM có chi phí cực kỳ thấp. Các công ty thường sử dụng Masked ROM trong các thiết bị sản xuất hàng loạt kéo dài trong nhiều năm.

Nhược điểm của Masked ROM là không ai có thể thay đổi dữ liệu trên chip.

Bộ nhớ chỉ đọc có thể lập trình (PROM): Đây là những chip có thể lập trình mà bạn mua chưa được lập trình và chỉ một lần. Các công ty sử dụng chúng để lưu trữ firmware và hằng số trong mã nguồn.

PROM đang trở nên lỗi thời, một phần, bởi vì nó đòi hỏi điện áp cao để lập trình và vận hành.

Bộ nhớ chỉ đọc có thể lập trình bằng điện (EEPROM): Bạn có thể xóa các chip này và lập trình lại chúng thông qua hoạt động điện.

Các kỹ sư thường sử dụng EEPROM trong phần firmware sản phẩm hoặc để lưu trữ phần firmware khi họ phát triển sản phẩm. Nó có thể hữu ích cho các sản phẩm có thể cần cập nhật chương trình cơ sở của họ ngay cả sau khi khách hàng mua nó.

Flash: Các nhà phát triển sử dụng bộ nhớ flash trong các hệ thống nhúng thường xuyên hơn. Bộ nhớ nhanh cho một thiết bị đọc và chi phí thấp. Các thiết bị sử dụng nó để lưu trữ các tệp lớn.

Giống như EEPROM, nó cũng có thể lập trình lại bằng điện. Nhưng bạn xóa và lập trình lại bộ nhớ flash một lĩnh vực tại một thời điểm, so với byte-by-byte trong EEPROM.

 

Một số hệ thống trên chip (SOC) có bộ nhớ flash được tích hợp trong chúng. Đối với lưu trữ bên ngoài, có hai loại bộ nhớ flash chính:

NAND Flash: Kỹ sư thường sử dụng bộ nhớ flash này. Nó nhỏ và thường được sử dụng trong ổ đĩa flash USB và đĩa trạng thái rắn (SSD).

NOR flash: Nhanh hơn NAND. Các kỹ sư thường sử dụng cũng như flash cho mã thực thi tại chỗ (XIP).

NVRAM hoặc bộ nhớ truy cập ngẫu nhiên non-volatile: Loại RAM này không mất dữ liệu khi mất điện nhưng có thể lưu trữ nó vĩnh viễn. Nó đắt tiền nhưng nhanh. Các kỹ sư sử dụng điều này trng trường hợp thời gian khởi động rất quan trọng.

Bộ nhớ truy cập ngẫu nhiên điện (FRAM): Một loại RAM khác không mất dữ liệu khi tắt nguồn, nó nhanh hơn và cung cấp nhiều chu kỳ ghi hơn và sử dụng ít năng lượng hơn. Các kỹ sư đôi khi sử dụng nó thay vì bộ nhớ EEPROM hoặc flash.

Bộ nhớ thay đổi pha (PCM): Đôi khi được gọi là PCRAM, bộ nhớ này non-volatile và giữ lại dữ liệu khi tắt nguồn. Các kỹ sư đôi khi sử dụng nó thay vì bộ nhớ flash. Nó có chu kỳ ghi nhanh hơn và sử dụng ít năng lượng hơn.

 

Cách chọn cấu hình bộ nhớ nhúng phù hợp cho dự án

Khi xem xét lựa chọn bộ nhớ cho IPC, bạn sẽ muốn xem xét giá cả, độ trễ, công suất và các yếu tố khác trong việc chọn bộ nhớ phù hợp hoặc kết hợp bộ nhớ cho hệ thống nhúng của bạn. Dưới đây là một số yếu tố hàng đầu để xem xét:

Tốc độ: Một số hệ thống và thiết bị nhúng phải khởi động nhanh hoặc có các chức năng khác phải thực hiện nhanh chóng. Hãy chắc chắn rằng bộ nhớ bạn chọn cho các hoạt động đó nhanh chóng. Các loại bộ nhớ khác nhau có năng lực khác nhau cho tốc độ. SRAM, ví dụ, nhanh hơn nhiều so với DRAM.

Kích thước lưu trữ dữ liệu: Các hệ thống nhúng thường có công suất hạn chế để lưu trữ dữ liệu. Các tùy chọn bộ nhớ khác nhau cung cấp các cách khác nhau để lưu trữ, duy trì và truy cập dữ liệu. Một số cũng cung cấp các cách để cung cấp thêm bộ nhớ với các thiết bị bên ngoài.

Độ trễ: Bộ nhớ hoặc kết hợp bộ nhớ bạn chọn sẽ ảnh hưởng đến hệ thống nhúng của bạn.

Tiêu thụ năng lượng: Điện thường bị giới hạn trong các hệ thống và thiết bị nhúng. Bạn sẽ muốn chọn các tùy chọn cho phép thiết bị hoạt động tốt và sử dụng ít năng lượng.

Chi phí: Chi phí của các loại bộ nhớ khác nhau có thể rất khác nhau. Nói chung, bộ nhớ SRAM đắt hơn nhiều so với DRAM. Các nhà sản xuất hệ thống nhúng phải chọn kết hợp bộ nhớ cho phép họ chỉ sử dụng bộ nhớ đắt hơn khi cần thiết cho hệ thống hoạt động tốt nhất có thể.

Yêu cầu giao diện người dùng đồ họa (GUI) trong một thiết bị nhúng: Nhiều thiết bị nhúng có màn hình hoặc hiển thị người dùng cần xem. Độ phân giải màn hình quan trọng và các yếu tố "bạn cần bao nhiêu dữ liệu để lấy từ bộ nhớ".