The specification for the Intel IA64 architecture seems to be rather well done and available at their site. I record here some questions as I read the material closely. Some of these questions may be answered later but I have scanned the material and do not know the answers. Not all of them demand answers.

Volume 1

I presume that privileged IA32 instructions trap within the IA64 system environment, no matter what the privilige level.
Ans: It depends on which “System Environment” was selected at boot time. See pdf 1.2.1.

I think that “call site” is used incompatibly with computer literature in section 2.7. Standard usage has “call site” meaning the neighborhood of the call instruction, not the beginning (or prolog) of the called routine.

Volume 2

Section 4.1.1.1

This section tries to say what TRs are for while saying how they work. This can be confusing. Probably power on reset and the instruction are the only things that change TRs but I can’t confirm that.

Here are some facts that I think that have deduced from the text.

Questions and unresolved issues: Rational: I think that the TR’s are designed to hold constant maps, set once per boot, and that talk of invalidating entries is merely to protect the circuitry from damage and perhaps report conflicts to the programmer for debugging.

Volume 3

Section 2.2: Instruction load: page 2-126 or 146 pdf-wise
“natd_gr_read” undefined.

Section 3, Table 3-1: page 3-8 or 264 pdf-wise
The definition of tlb_translate is vague. It is not clear whether it looks beyond the TLB at ... It says that it checks the “Data TLB fault”. pdf page 441 of volume 2 has something to say about these. Volume 4 indicates that the Itanium indeed does have a page table walker. Presumably it fetches entries produced by the kernel to produce a TLB entry. I have not found where the format of these entries is specified.