In order to see how predication works, let us start with the simple ex dịch - In order to see how predication works, let us start with the simple ex Việt làm thế nào để nói

In order to see how predication wor

In order to see how predication works, let us start with the simple example of
Fig. 5-48, which shows conditional execution, a precursor to predication. In
Fig. 5-48(a) we see an if statement. In Fig. 5-48(b) we see its translation into three
instructions: a comparison, a conditional branch, and a move instruction.
if (R1 == 0) CMP R1,0 CMOVZ R2,R3,R1
R2 = R3; BNE L1
MOV R2,R3
L1:
(a) (b) (c)
Figure 5-48. (a) An if statement. (b) Generic assembly code for (a). (c) A conditional instruction.
In Fig. 5-48(c) we get rid of the conditional branch by using a new instruction,
CMOVZ, which is a conditional move. What it does is check to see if the third register, R1 , is 0. If so, it copies R3 to R2. If not, it does nothing.
Once we have an instruction that can copy data when some register is 0, it is a
small step to an instruction that can copy data when some register is not 0, say
CMOVN. With both of these instructions available, we are on our way to full conditional execution. Imagine an if statement with several assignments in the then part
and several other assignments in the else part. The whole statement can be translated into code to set some register to 0 if the condition is false and to another
value if it is true. Following the register setup, the then part assignments can be
compiled into a sequence of CMOVN instructions and the else part assignments into
a sequence of CMOVZ instructions.
All of these instructions, the register setup, the CMOVNs, and the CMOVZs form
a single basic block with no conditional branch. The instructions can even be
reordered, either by the compiler (including hoisting the assignments before the
test) or during execution. The only catch is that the condition has to be known by
the time the conditional instructions have to be retired (near the end of the
pipeline). A simple example showing a then part and an else part is given in
Fig. 5-49.
Although we have shown here only very simple conditional instructions (taken
from the IA-32 ISA, actually), on the IA-64 all instructions are predicated. What
this means is that the execution of every instruction can be made conditional. The
extra 6-bit field referred to earlier selects one of 64 1-bit predicate registers. Thus
an if statement will be compiled into code that sets one of the predicate registers to
1 if the condition is true and to 0 if it is false. Simultaneously and automatically, it
sets another predicate register to the inverse value. Using predication, the machine
instructions forming the then and else clauses will be merged into a single stream
of instructions, the former ones using the predicate and the latter ones using its
inverse. When control passes there, only one set of instructions will be executed
0/5000
Từ: -
Sang: -
Kết quả (Việt) 1: [Sao chép]
Sao chép!
Để thấy cách hoạt động của predication, chúng ta hãy bắt đầu với ví dụ đơn giảnHình 5-48, cho thấy có điều kiện thi công, tiền thân của predication. ỞHình 5-48(a) chúng ta thấy nếu một tuyên bố. Trong hình 5-48(b) chúng tôi thấy bản dịch của mình vào bahướng dẫn: một so sánh, một chi nhánh có điều kiện và hướng dẫn di chuyển.Nếu (R1 == 0) CMP R1, 0 CMOVZ R2, R3, R1R2 = R3; BNE L1MOV R2, R3L1:(a) (b) (c)Con số 5-48. (a) nếu một tuyên bố. (b) chung hội mã cho (a). (c) hướng dẫn điều kiện.Trong hình 5-48(c) chúng tôi loại bỏ các chi nhánh có điều kiện bằng cách sử dụng một hướng dẫn mới,CMOVZ, mà là một động thái có điều kiện. Những gì nó là kiểm tra xem nếu đăng ký thứ ba, R1, là 0. Nếu vậy, nó sao chép R3 với R2. Nếu không, nó không có gì.Một khi chúng tôi có một hướng dẫn mà có thể sao chép dữ liệu khi đăng ký một số là 0, đó là mộtbước nhỏ cho một hướng dẫn mà có thể sao chép dữ liệu khi đăng ký một số không 0, nóiCMOVN. Với cả hai của các hướng dẫn có sẵn, chúng tôi đang trên đường đến đầy đủ điều kiện thực hiện. Hãy tưởng tượng nếu một tuyên bố với một số bài tập ở phần sau đóvà một số các bài tập khác trong các phần khác. Các báo cáo toàn bộ có thể được dịch vào mã để đặt đăng ký một số 0 nếu tình trạng này là sai và khácgiá trị nếu nó là đúng sự thật. Sau thiết lập đăng ký, thì sau đó một phần bài tập có thểbiên soạn thành một chuỗi các hướng dẫn CMOVN và các khác phần bài tập vàomột chuỗi các hướng dẫn CMOVZ.Tất cả các hướng dẫn, cài đặt đăng ký, các CMOVNs và hình thức CMOVZsmột khối cơ bản duy nhất với các chi nhánh không có điều kiện. Hướng dẫn thậm chí có thểsắp xếp lại, hoặc bằng trình biên dịch (bao gồm cả nâng bài tập trước khi cáckiểm tra) hoặc trong quá trình thực hiện. Chỉ nắm bắt là các điều kiện đã được biết đến bởithời gian các hướng dẫn điều kiện phải được nghỉ hưu (gần cuối của cácđường ống). Một ví dụ đơn giản, Hiển thị một phần sau đó và một phần khác được đưa ra trongHình 5-49.Mặc dù chúng tôi đã cho thấy đây chỉ rất đơn giản hướng dẫn có điều kiện (chụptừ IA-32 ISA, thực sự), trên IA-64 tất cả hướng dẫn được predicated. Cái gìĐiều này có nghĩa là thực hiện mọi hướng dẫn có thể được thực hiện có điều kiện. Cáclĩnh vực thêm 6-bit nhắc đến trước đó lựa chọn một trong số 64 1 bit predicate đăng ký. Do đómột nếu tuyên bố sẽ được biên dịch vào mã mà đặt một trong vị ngữ đăng ký để1 nếu tình trạng này là sự thật và 0 nếu nó là sai. Tự động, và đồng thời nóthiết lập một đăng ký predicate giá trị nghịch đảo. Predication, máy sử dụnghướng dẫn tạo thành các điều khoản khác và sau đó sẽ được sáp nhập vào một dòng duy nhấthướng dẫn, những người cũ bằng cách sử dụng vị ngữ và những người thứ hai bằng cách sử dụng của nónghịch đảo. Khi điều khiển đi đến, chỉ có một tập hợp các hướng dẫn sẽ được thực thi
đang được dịch, vui lòng đợi..
Kết quả (Việt) 2:[Sao chép]
Sao chép!
Để xem làm thế nào sự thuyết pháp làm việc, chúng ta hãy bắt đầu với một ví dụ đơn giản của
hình. 5-48, trong đó cho thấy điều kiện thực hiện, tiền thân của sự thuyết pháp. Trong
hình. 5-48 (a) chúng ta thấy một câu lệnh if. Trong hình. 5-48 (b), chúng tôi xem bản dịch của thành ba
hướng dẫn:. So sánh, một chi nhánh có điều kiện, và một hướng dẫn di chuyển
nếu (R1 == 0) CMP R1,0 CMOVZ R2, R3, R1
R2 = R3; BNE L1
MOV R2, R3
L1:
(a) (b) (c)
Hình 5-48. (a) Một câu lệnh if. (b) lắp ráp mã chung cho (a). (c) Một hướng dẫn điều kiện.
Trong hình. 5-48 (c) chúng ta thoát khỏi các chi nhánh có điều kiện bằng cách sử dụng một lệnh mới,
CMOVZ, đó là một động thái có điều kiện. Những gì nó là kiểm tra xem nếu đăng ký thứ ba, R1, là 0. Nếu vậy, nó sao chép R3 R2. Nếu không, nó không làm gì.
Một khi chúng ta có một hướng dẫn mà có thể sao chép dữ liệu khi một số đăng ký là 0, nó là một
bước nhỏ tới một chỉ dẫn có thể sao chép dữ liệu khi một số đăng ký không phải là 0, nói
CMOVN. Với cả hai hướng dẫn có sẵn, chúng tôi đang trên đường đến điều kiện thực hiện đầy đủ. Hãy tưởng tượng một tuyên bố nếu với một số bài tập trong đó một phần
và một số nhiệm vụ khác ở phần khác. Toàn bộ tuyên bố có thể được dịch sang mã để thiết lập một số đăng ký là 0 nếu điều kiện là sai và đến một
giá trị nếu nó là sự thật. Sau khi thiết lập đăng ký, sau đó phân công một phần có thể được
biên dịch thành một chuỗi các hướng dẫn CMOVN và khác bài tập phần vào
một chuỗi các hướng dẫn CMOVZ.
Tất cả các hướng dẫn, các thiết lập đăng ký, các CMOVNs, và CMOVZs tạo thành
một khối cơ bản đơn không có chi nhánh có điều kiện. Các hướng dẫn thậm chí có thể được
sắp xếp lại, hoặc là bởi trình biên dịch (bao gồm cả bộ phận nâng hàng các bài tập trước khi
kiểm tra) hoặc trong quá trình thực hiện. Việc nắm bắt duy nhất là tình trạng này đã được biết đến bởi
thời gian hướng dẫn điều kiện phải được nghỉ hưu (gần cuối của
đường ống). Một ví dụ đơn giản cho thấy một sau đó một phần và một phần khác được đưa ra trong
hình. 5-49.
Mặc dù chúng tôi đã trình bày ở đây chỉ đơn giản hướng dẫn điều kiện (lấy
từ IA-32 ISA, trên thực tế), trên IA-64 tất cả các hướng dẫn được xác. Những gì
này có nghĩa là việc thực hiện của mỗi lệnh có thể được thực hiện có điều kiện. Việc
thêm lĩnh vực 6-bit gọi Lựa chọn trước đó một trong 64 thanh ghi vị ngữ 1-bit. Như vậy
một câu lệnh if sẽ được biên dịch thành mã mà đặt một trong các thanh ghi vị đến
1 nếu điều kiện là đúng sự thật và là 0 nếu nó là sai. Đồng thời và tự động, nó
đặt một đăng ký vị với giá trị nghịch đảo. Sử dụng sự thuyết pháp, máy
hướng dẫn hình thành các điều khoản sau đó và người khác sẽ được sáp nhập vào một dòng duy nhất
của hướng dẫn, những người trước đây sử dụng làm vị và những người sau này sử dụng của nó
ngược. Khi điều khiển đi ở đó, chỉ có một tập các lệnh sẽ được thực thi
đang được dịch, vui lòng đợi..
 
Các ngôn ngữ khác
Hỗ trợ công cụ dịch thuật: Albania, Amharic, Anh, Armenia, Azerbaijan, Ba Lan, Ba Tư, Bantu, Basque, Belarus, Bengal, Bosnia, Bulgaria, Bồ Đào Nha, Catalan, Cebuano, Chichewa, Corsi, Creole (Haiti), Croatia, Do Thái, Estonia, Filipino, Frisia, Gael Scotland, Galicia, George, Gujarat, Hausa, Hawaii, Hindi, Hmong, Hungary, Hy Lạp, Hà Lan, Hà Lan (Nam Phi), Hàn, Iceland, Igbo, Ireland, Java, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Kurd, Kyrgyz, Latinh, Latvia, Litva, Luxembourg, Lào, Macedonia, Malagasy, Malayalam, Malta, Maori, Marathi, Myanmar, Mã Lai, Mông Cổ, Na Uy, Nepal, Nga, Nhật, Odia (Oriya), Pashto, Pháp, Phát hiện ngôn ngữ, Phần Lan, Punjab, Quốc tế ngữ, Rumani, Samoa, Serbia, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenia, Somali, Sunda, Swahili, Séc, Tajik, Tamil, Tatar, Telugu, Thái, Thổ Nhĩ Kỳ, Thụy Điển, Tiếng Indonesia, Tiếng Ý, Trung, Trung (Phồn thể), Turkmen, Tây Ban Nha, Ukraina, Urdu, Uyghur, Uzbek, Việt, Xứ Wales, Yiddish, Yoruba, Zulu, Đan Mạch, Đức, Ả Rập, dịch ngôn ngữ.

Copyright ©2024 I Love Translation. All reserved.

E-mail: