这是关于边沿指令的讨论引申出来的。
scan、scan cycle(扫描、扫描周期),在英文手册中处理得比较好,翻译成中文后,就比较随便了。
我认为:
scan=扫描
scan cycle=扫描周期
这两者绝对不是一个概念。如果把scan也翻译成“扫描周期”,就抹杀了两者的区别,误导读者。
我们来看手册:


把“scan cycle”翻译为“扫描周期”,概念明确,没问题。
再来看:




把“scan”也翻译为“扫描周期”,就有问题了。英文把“cycle”省掉,并不是为了省笔墨,而是有cycle与没有cycle是两回事。
什么是scan?

在一个扫描周期中,有一段时间是用来执行用户程序,系统从用户程序的第一条指令开始执行,从上到下,从左至右,一直执行到最后一条指令。这种执行过程、行为、动作等等叫做scan。scan的范围,可以指整个程序,也可以是某一
段程序或某一条指令,根据上下文来确定。
把“scan”也翻译为“扫描周期”,等于是把原本是“局部性”的扫描升格为整个循环扫描周期。
具体举例来说,“first scan”不是“first scan cycle”。
“first scan cycle”是指CPU开始RUN后的第一个扫描周期,其代表人物是SM0.1=1,
“first scan”指某段程序或某条指令在系统RUN以来首次被scan(扫描/执行),这个动作不一定发生在“first scan cycle”期间,比如被JMP跳过或在子程序中没有被调用。
再比如,“one scan”不是“one scan cycle”。
某段程序或某条指令,在“one scan cycle”中,可以是“one scan”(一次扫描),也可以是“multiple scan”(多次扫描,比如循环、子程序多次调用等),当然也可能一个scan都没有发生。
以上是个人见解,请各位指正。