Execution Time
Contents
FAQ-ID = 78exec- nnnn
78exec -0001
|
The instruction execution time is different from the time indicated in the manual.
|
| Q1 |
The calculated instruction execution time is longer than (about double)
the actual instruction execution time.
I am using fxt (32.768kHz).
1 clock = 32768/2 = 16384 (61μs).
Here, NOP = 4 clocks = 244μs, but when actually executed with the ICE,
the operation is performed with 122μs.
|
| A1 |
122μs is the correct value.
The NOP execution time is not 4 clocks but 2 clocks.
The NOP instruction execution time is listed on the last page of "2.4.2. Operation List".
|
78exec -0002
|
SUBW instruction execution clock count [78K/4]
|
| Q1 |
In the 78K4 Instruction Manual, the clock count of SUBW AX, #Word is listed as 3 clocks,
but when performing the calculation with 5 clocks,
the same as when using another register, the wait time matches.
Moreover, the wait time does not change even when the register is changed to another register.
Is this a mistake in the manual?
|
| A1 |
3 clocks is the value assuming that an instruction has entered the pre-fetch queue.
Your case may refer to the execution just after a branch instruction
that has made the queue empty.
The SUBW instruction execution clock count is not 3 clocks
because the fetch time is added to the 3 clocks.
Also, the execution clock count differs depending on whether the address is odd or even.
|
78exec -0003
|
Why are there several types of instruction execution times? [78K/4]
|
| Q1 |
The instruction execution clock count for each instruction is listed in the Instructions manual,
but why do several clock counts exist for the CALL, BR, and RET instructions?
I could understand it if it were to manipulate RAM, like the MOV instruction,
but do RET, etc., also use RAM somewhere?
|
| A1 |
The reason is that there is memory access related to the instruction execution.
There is one execution clock count listed for the BR instruction
that does not require memory access,
however, if using the memory contents indicated by the register
as the branch destination address,
the execution speed differs depending on where the memory is located.
For CALL and RET, the execution time also differs depending on where the stack area is located.
|
78exec -0004
|
When there are several instruction byte counts, which should be used? [78K/4]
|
| Q1 |
Regarding the 78K/4 instruction set clock count,
"If two types of numbers of bytes are shown for that instruction
with each delimited by "/" from the other.
The execution time of this kind of instruction is the number of clocks
shown at the same side as the number of bytes."
is written,
but where should I look to know which instruction byte is selected?
|
| A1 |
Please refer to the table in section
"(1) Operand identifiers and descriptions " in section 6.1 Legends,
as well as section "(6) Number of bytes of instruction that includes saddr, saddrp, r, or rp in operands"
in the 78K4 series Instructions Manual.
The answer to your question is determined by the register in question and the saddr address.
For example, regarding the register, the instruction is short when r1 is selected,
but it is long when r2 is selected.
The contents of r1 (X, A, B, C) and r2 (D, E, H, L) are listed in the table
in section "(1) Operand identifiers and descriptions" in section 6.1 Legends
in the 78K4 series Instructions Manual.
Also, saddr is divided into saddr1 (FE00H to FEFFH) and
saddr2 (FD20H to FDFFH and FF00H to FF1FH) according to the address.
When saddr1 is used, long instructions are selected and short instructions are selected for saddr2.
This is also described in the above-mentioned table.
The same classification applies in the case of 16 bits.
|
78exec -0005
|
Which is the fastest 78K/4 device? [78K/4]
|
| Q1 |
In the uPD784038, what is the maximum frequency of the external resonator at 3.3V?
At 3.3V, what is the fastest 78K/4 device
and what is the maximum frequency of the external resonator?
|
| A1 |
Among the 78K4 products, the fastest device at 3.3V is the uPD78403X.
The resonator for this product is 16MHz.
|
78exec -0006
|
How many bytes long is the instruction queue? [78K/4]
|
| Q1 |
How long is the uPD784036 instruction queue? (How many bytes?)
|
| A1 |
The instruction queue is 4 bytes.
|
78exec -0007
|
Can the instruction queue status be ascertained? [78K/4]
|
| Q1 |
It is considered that the instruction execution time cannot be accurately calculated
if the instruction queue status is not entirely known.
How can the instruction queue status be completely ascertained?
|
| A1 |
It is difficult to completely ascertain the instruction queue status.
If this is required, the instruction queue and the subsequent instruction execution
(CPU operation itself) must be completely simulated.
The operation of the instruction queue differs depending on the instruction that is executed.
The queue is cleared by a branch instruction,
and the operation is also affected by whether the branch destination address is an odd or even address.
Moreover, fetch cannot be performed when the bus is used for instruction execution,
and the instruction fetch time is also a factor.
All these factors are combined and make it difficult to completely ascertain the instruction queue status.
|
|