Tin tức Khoa học Skynet

Một kỹ thuật nén dữ liệu mới cho các chương trình máy tính nhanh hơn

Ngày:
Th4 17, 2019
Tóm tắt:

Một kỹ thuật mới xem xét lại việc nén dữ liệu phần cứng để giải phóng thêm bộ nhớ được sử dụng bởi máy tính và thiết bị di động, cho phép chúng chạy nhanh hơn và thực hiện nhiều tác vụ hơn cùng một lúc.

Chia sẻ:
BÀI VIẾT ĐẦY ĐỦ

Một kỹ thuật mới được phát triển bởi các nhà nghiên cứu MIT suy nghĩ lại về nén dữ liệu phần cứng để giải phóng thêm bộ nhớ được sử dụng bởi máy tính và thiết bị di động, cho phép chúng chạy nhanh hơn và thực hiện nhiều tác vụ hơn cùng một lúc.

Một kỹ thuật mới được phát triển bởi các nhà nghiên cứu MIT lần đầu tiên nén các đối tượng của bộ nhớ vào bộ nhớ, giải phóng thêm bộ nhớ được sử dụng bởi các máy tính, cho phép chúng chạy nhanh hơn và thực hiện nhiều tác vụ hơn cùng một lúc.
Tín dụng: Christine Daniloff, MIT
Một kỹ thuật mới được phát triển bởi các nhà nghiên cứu MIT lần đầu tiên nén các đối tượng của bộ nhớ vào bộ nhớ, giải phóng thêm bộ nhớ được sử dụng bởi các máy tính, cho phép chúng chạy nhanh hơn và thực hiện nhiều tác vụ hơn cùng một lúc.
Tín dụng: Christine Daniloff, MIT

Nén dữ liệu tận dụng dữ liệu dư thừa để giải phóng dung lượng lưu trữ, tăng tốc độ tính toán và cung cấp các đặc quyền khác. Trong các hệ thống máy tính hiện tại, việc truy cập bộ nhớ chính rất tốn kém so với tính toán thực tế. Bởi vì điều này, sử dụng nén dữ liệu trong bộ nhớ giúp cải thiện hiệu suất, vì nó làm giảm tần suất và số lượng chương trình dữ liệu cần tìm nạp từ bộ nhớ chính.

Bộ nhớ trong các máy tính hiện đại quản lý và chuyển dữ liệu theo các khối có kích thước cố định, trên đó các kỹ thuật nén truyền thống phải hoạt động. Tuy nhiên, phần mềm không tự nhiên lưu trữ dữ liệu của mình trong các khối có kích thước cố định. Thay vào đó, nó sử dụng các “đối tượng”, cấu trúc dữ liệu có chứa nhiều loại dữ liệu khác nhau và có kích thước thay đổi. Do đó, kỹ thuật nén phần cứng truyền thống xử lý các đối tượng kém.

Trong một bài báo được trình bày tại Hội nghị quốc tế ACM về Hỗ trợ kiến ​​trúc cho các ngôn ngữ lập trình và hệ điều hành trong tuần này, các nhà nghiên cứu MIT đã mô tả phương pháp đầu tiên để nén các đối tượng trong hệ thống phân cấp bộ nhớ. Điều này làm giảm việc sử dụng bộ nhớ trong khi cải thiện hiệu suất và hiệu quả.

Các lập trình viên có thể hưởng lợi từ kỹ thuật này khi lập trình bằng bất kỳ ngôn ngữ lập trình hiện đại nào – như Java, Python và Go – lưu trữ và quản lý dữ liệu trong các đối tượng mà không thay đổi mã của họ. Cuối cùng, người tiêu dùng sẽ thấy các máy tính có thể chạy nhanh hơn nhiều hoặc có thể chạy nhiều ứng dụng hơn với cùng tốc độ. Bởi vì mỗi ứng dụng tiêu thụ ít bộ nhớ hơn, nó chạy nhanh hơn, do đó, một thiết bị có thể hỗ trợ nhiều ứng dụng hơn trong bộ nhớ được phân bổ.

Trong các thử nghiệm sử dụng máy ảo Java đã sửa đổi, kỹ thuật này đã nén gấp đôi dữ liệu và giảm một nửa mức sử dụng bộ nhớ so với các phương thức dựa trên bộ đệm truyền thống.

Po-An Tsai, một sinh viên tốt nghiệp cho biết: “Động lực đã cố gắng đưa ra một hệ thống phân cấp bộ nhớ mới có thể thực hiện nén dựa trên đối tượng, thay vì nén dòng bộ đệm, bởi vì đó là cách mà hầu hết các ngôn ngữ lập trình hiện đại quản lý dữ liệu”. trong Phòng thí nghiệm Khoa học Máy tính và Trí tuệ Nhân tạo (CSAIL).

“Tất cả các hệ thống máy tính sẽ được hưởng lợi từ điều này”, đồng tác giả Daniel Sanchez, giáo sư khoa học máy tính và kỹ thuật điện, và một nhà nghiên cứu tại CSAIL cho biết thêm. “Các chương trình trở nên nhanh hơn vì chúng không bị tắc nghẽn bởi băng thông bộ nhớ.”

Các nhà nghiên cứu xây dựng trên công trình trước đó của họ để tái cấu trúc kiến ​​trúc bộ nhớ để trực tiếp thao tác với các đối tượng. Các kiến ​​trúc truyền thống lưu trữ dữ liệu trong các khối theo một hệ thống các ký ức lớn hơn và chậm hơn, được gọi là “bộ nhớ cache”. Các khối được truy cập gần đây tăng lên các bộ đệm nhỏ hơn, nhanh hơn, trong khi các khối cũ hơn được chuyển sang bộ đệm chậm hơn và lớn hơn, cuối cùng kết thúc trong bộ nhớ chính. Mặc dù tổ chức này linh hoạt, nhưng nó rất tốn kém: Để truy cập bộ nhớ, mỗi bộ đệm cần tìm kiếm địa chỉ trong số các nội dung của nó.

“Bởi vì đơn vị tự nhiên của quản lý dữ liệu trong các ngôn ngữ lập trình hiện đại là các đối tượng, tại sao không tạo ra một hệ thống phân cấp bộ nhớ liên quan đến các đối tượng?” Sanchez nói.

Trong một bài báo được xuất bản vào tháng 10 năm ngoái, các nhà nghiên cứu đã trình bày chi tiết một hệ thống có tên Hotpads, lưu trữ toàn bộ các vật thể, được đóng gói chặt chẽ thành các cấp độ phân cấp hoặc “miếng đệm”. Các mức này nằm hoàn toàn trên các bộ nhớ hiệu quả, trực tiếp trên chip – không cần tìm kiếm phức tạp.

Các chương trình sau đó trực tiếp tham chiếu vị trí của tất cả các đối tượng trên hệ thống phân cấp của các miếng đệm. Các đối tượng mới được phân bổ và được tham chiếu gần đây và các đối tượng mà chúng trỏ đến, ở mức nhanh hơn. Khi mức độ nhanh hơn lấp đầy, nó sẽ chạy một quá trình “trục xuất” để giữ các đối tượng được tham chiếu gần đây nhưng đẩy các đối tượng cũ xuống mức chậm hơn và tái chế các đối tượng không còn hữu ích, để giải phóng không gian. Con trỏ sau đó được cập nhật trong mỗi đối tượng để trỏ đến vị trí mới của tất cả các đối tượng được di chuyển. Theo cách này, các chương trình có thể truy cập các đối tượng rẻ hơn nhiều so với tìm kiếm thông qua các mức bộ đệm.

Đối với công việc mới của họ, các nhà nghiên cứu đã thiết kế một kỹ thuật gọi là “Zippads”, tận dụng kiến ​​trúc Hotpad để nén các đối tượng. Khi các đối tượng lần đầu tiên bắt đầu ở cấp độ nhanh hơn, chúng không bị nén. Nhưng khi chúng bị đuổi đến mức chậm hơn, tất cả chúng đều bị nén. Con trỏ trong tất cả các đối tượng ở các cấp sau đó trỏ đến các đối tượng nén đó, giúp chúng dễ dàng quay trở lại các mức nhanh hơn và có thể được lưu trữ gọn hơn so với các kỹ thuật trước đó.

Một thuật toán nén sau đó tận dụng sự dư thừa trên các đối tượng một cách hiệu quả. Kỹ thuật này phát hiện ra nhiều cơ hội nén hơn các kỹ thuật trước đây, vốn bị giới hạn trong việc tìm kiếm sự dư thừa trong mỗi khối kích thước cố định. Thuật toán trước tiên chọn một vài đối tượng đại diện làm đối tượng “cơ sở”. Sau đó, trong các đối tượng mới, nó chỉ lưu trữ dữ liệu khác nhau giữa các đối tượng đó và các đối tượng cơ sở đại diện.


Nguồn tin tức:

Tài liệu được cung cấp bởi Viện Công nghệ Massachusetts . Bản gốc được viết bởi Rob Matheson. Lưu ý: Nội dung có thể được chỉnh sửa cho kiểu dáng và độ dài.


Bài viết liên quan

Bài viết mới