Mục lục:
Định nghĩa - Đăng ký phân bổ có nghĩa là gì?
Phân bổ đăng ký đề cập đến việc thực hành gán các biến cho các thanh ghi cũng như xử lý chuyển dữ liệu vào và ra khỏi các thanh ghi. Đăng ký phân bổ có thể xảy ra:- Trên một khối cơ bản, được gọi là phân bổ đăng ký cục bộ
- Trong toàn bộ chức năng hoặc thủ tục, được gọi là phân bổ đăng ký toàn cầu
- Trên các ranh giới chức năng đi qua phương tiện của biểu đồ cuộc gọi, được gọi là phân bổ đăng ký liên thủ tục
Techopedia giải thích Đăng ký phân bổ
Trong quá trình biên dịch, trình biên dịch sẽ xác định cách thức các biến được phân bổ cho một phạm vi đăng ký nhỏ, cụ thể. Một số biến có thể không được sử dụng hoặc được gọi là "sống" đồng thời. Điều này dẫn đến việc gán một số thanh ghi cho nhiều biến. Tuy nhiên, không có hai biến trực tiếp đồng thời có thể được phân bổ cho cùng một thanh ghi mà không làm hỏng giá trị.
Các biến không thể được phân bổ cho một số thanh ghi cần được lưu trữ trong RAM và nên được tải vào và ra cho mỗi lần đọc và ghi, tương ứng, một thủ tục được gọi là tràn. Truy cập các thanh ghi nhanh hơn nhiều so với truy cập RAM. Ngoài ra, nó tăng tốc thời gian thực hiện của chương trình được biên dịch; do đó, trình biên dịch hiệu quả nhằm mục đích gán càng nhiều biến cho các thanh ghi càng tốt.
Nói chung, hầu hết các cấp phát thanh ghi đều gán mọi biến cho bộ nhớ chính hoặc thanh ghi đơn vị xử lý trung tâm (CPU). Tốc độ là lợi ích chính khi sử dụng một thanh ghi. Máy tính có một phạm vi các thanh ghi hữu hạn, có nghĩa là không phải tất cả các biến có sẵn đều có thể được phân bổ cho các thanh ghi. Quá trình chuyển một biến từ một thanh ghi sang bộ nhớ được gọi là tràn, trong khi thủ tục ngược lại của việc chuyển một biến từ bộ nhớ sang một thanh ghi được gọi là điền. Phân bổ đăng ký thông minh là một bước quan trọng cho bất kỳ trình biên dịch.
Có hai loại phân bổ đăng ký:
- Phân bổ thanh ghi cục bộ: Đây là một quá trình phân bổ một khối cơ bản (hoặc siêu khối hoặc siêu khối) tại một thời điểm. Phân bổ đăng ký địa phương tăng tốc độ.
- Phân bổ đăng ký toàn cầu: Nếu việc sử dụng đăng ký kém khi sử dụng phân bổ cục bộ, điều quan trọng là sử dụng phân bổ đăng ký toàn cầu. Trong phân bổ đăng ký toàn cầu đơn giản, các giá trị hoạt động nhất được phân bổ trong mỗi vòng lặp bên trong. Phân bổ đăng ký toàn cầu sử dụng một quy trình để xác định phạm vi trực tiếp trong biểu đồ luồng điều khiển, gán phạm vi trực tiếp và phân chia phạm vi theo yêu cầu.
