“哈佛结构”是指一台拥有多个分散内存用于记录指令与数据的计算机,这个术语起源于“哈佛马克1号”计算机,它由IBM于1944年制造,用纸带记录指令,用继电器来储存数据,举例来说,假设有4个“内存库”,每个“内存库”有8个字节,为了访问位置5,我们有两种方法,第一种,使用指令a=0,f=5,第二种,先将BSR的值设为0,然后使用指令a=1,f=5,第一种方法更快,因为它不需要花费时间设置BSR。
“哈佛结构”是指一台拥有多个分散内存用于记录指令与数据的计算机。这个术语起源于“哈佛马克1号”计算机。它由IBM于1944年制造,用纸带记录指令,用继电器来储存数据。
一些最新的单片机使用了“哈佛结构”(当然没有用纸带和继电器)。数据是由“内存库”来组织,每个“内存库”拥有相同数量的数据。每一个访问数据的指令都由2个数控制。一个数a(非0即1)。如果a为0,那么访问的是0号“内存库”。如果a为1则访问BSR(bank select register “内存库”选择寄存器)中选择的“内存库”。另一个数f表示访问该“内存库”的第f个变量。我们假设每一个指令花费相同的时间运行。另外还有一个可以设定BSR值的命令。
举例来说,假设有4个“内存库”,每个“内存库”有8个字节。为了访问位置5(0号“内存库”第5个变量),我们有两种方法。第一种,使用指令a=0,f=5。第二种,先将BSR的值设为0,然后使用指令a=1,f=5。第一种方法更快,因为它不需要花费时间设置BSR。
现在假设(还是刚才的“内存库”)我们要访问位置20(2号“内存库”第4个变量)。现在只有1种方法能够访问。将BSR的值设为2(除非BSR原来就是2),然后用指令a=1,f=4。
一个程序是一个操作的序列,每个操作是:
●一个变量访问操作,写作Vi,i是一个正整数。
●一个循环操作,写作 Rn