2012-10-18 19 views
7

... chỉ được đề cập trong PTX manual. Không có gợi ý về những gì họ là tốt cho hoặc làm thế nào để sử dụng chúng.Thanh ghi "bit bucket" của PTX

Có ai biết thêm không? Tôi chỉ thiếu một khái niệm chung?

+2

Nếu tôi không nhầm lẫn (mặc dù tôi có nhiều khả năng nhất và sẽ được sửa chữa về điều này;)) ghi vào sổ đăng ký về cơ bản là không có op. – Bart

+1

Nói chung, chỉ định một bit-xô làm đăng ký đích cho một lệnh khi một người không quan tâm đến kết quả đăng ký được tạo ra bởi lệnh nhưng chỉ ở hiệu ứng phụ của lệnh. Ví dụ, với các bộ vi xử lý khác nhau, lệnh so sánh thực sự là một lệnh giả được thực hiện như một lệnh trừ với thanh ghi đích được chỉ định là bit-bucket, vì một chỉ quan tâm đến các cờ (các mã điều kiện) được tạo ra như là một bên- ảnh hưởng của phép trừ. harrism đã được cung cấp ví dụ sử dụng bit-bucket cụ thể cho PTX dưới đây. – njuffa

Trả lời

8

Nhận xét của Bart về cơ bản là đúng. Cụ thể hơn, như được nêu trong số PTX ISA 3.1 manual,

Để biết một số hướng dẫn toán hạng đích là tùy chọn. Toán hạng “bit bucket” được ký hiệu bằng dấu gạch dưới (_) có thể được sử dụng thay cho thanh ghi đích.

Có thật là chỉ có một lớp giảng dạy được liệt kê trong 3.1 PTX spec cho mà _ là một địa điểm hợp lệ: atom. Dưới đây là ý nghĩa của atom:

atomically tải giá trị ban đầu tại địa điểm một vào thanh ghi đích d, thực hiện một hoạt động giảm với toán hạng b và giá trị trong vị trí một, và lưu trữ các kết quả của các hoạt động quy định tại vị trí a, ghi đè giá trị ban đầu.

Và có một ghi chú cho atom:

giảm đơn giản có thể được xác định bằng cách sử dụng “chút xô” đến toán hạng ‘_’.

Vì vậy, chúng ta có thể xây dựng một ví dụ:

atom.global.add.s32 _, [a], 4 

này sẽ thêm 4 số nguyên ký tại vị trí bộ nhớ a, và không trả về giá trị trước đó của vị trí a trong một thanh ghi. Vì vậy, nếu bạn không cần giá trị trước đó, bạn có thể sử dụng giá trị này. Tôi cho rằng trình biên dịch sẽ tạo mã này cho mã này

atomicAdd(&a, 4); 

vì giá trị trả về của nguyên tửThêm không được lưu vào biến.

+0

Cảm ơn bạn đã mở rộng "điều gì đó không phải thứ gì đó" của tôi với một số thông tin thực tế. Tốt để biết. :) – Bart

+0

Cảm ơn, điều đó có ý nghĩa. Và tốt để biết phiên bản 3.1 của hướng dẫn là ra ngoài. – Dude

Các vấn đề liên quan