磁盘
大多数计算机都有磁盘。这只是连接到I/O总线的另一个外围设备。磁盘的任务非常简单;它可以做两件事:存储你发给它的字节,它发送给你之前存储的字节。
大多数计算机都有磁盘有两个原因。首先,它们能够存储大量字节,比计算机的RAM大很多倍。CPU只能执行RAM中的程序,只能操作RAM中的字节。但永远没有足够的RAM来存储您可能想用计算机做的所有事情。
计算机有磁盘的第二个原因是,当您关闭电源时,磁盘上存储的字节不会消失。当您关闭计算机时,RAM会丢失其设置,当您重新打开计算机时,所有字节都是0000 0000,但磁盘会保留已写入的所有字节。
磁盘,顾名思义,是一个圆的东西,旋转很快。它涂有一种容易磁化的材料。磁盘,手臂可以前后摆动,这样磁头可以到达磁盘表面的任何点。如果你通过磁头通电,它可以磁化磁盘表面。此外,它的工作方式与此相反;当磁头经过磁化区域时,磁头周围的导线会产生电流。因此,磁头既可以在磁盘上写入,也可以读取先前写入磁盘的内容。字节的位一个接一个地写入磁盘表面。磁盘的表面被分成一系列环,称为磁道,彼此非常接近。头部可以在表面上移动,并在任何一个轨迹上停止。每个圆形轨道通常被分为短段,称为扇区。由于磁盘有两面,通常两面都涂有磁性材料,每一面都有一个磁头。
在RAM中,每个字节都有自己的地址。在磁盘上,也有一种定位字节的方法,但它非常不同。您必须指定字节块所在的磁头、磁道和扇区。这就是磁盘上数据的“地址”类型,比如“磁头0,磁道57,扇区15”。在这个地址上,不仅有一个字节,还有一个字节块,通常有几千个。对于本书中的示例,由于我们的RAM太小,我们将讨论存储100字节块的磁盘。
当读取或写入磁盘时,无法访问字节块中的单个字节。整个块必须转移到RAM,在RAM中工作,然后整个块必须写回磁盘。磁盘旋转得很快,比你桌子上的风扇还快;许多流行的磁盘每分钟旋转7200次,即每秒120次。这相当快,但与CPU相比,它仍然相当慢。在磁盘旋转一次的时间内,时钟将滴答超过800万次,我们的CPU将执行超过100万条指令。
磁盘和每个外围设备一样,都连接到自己的适配器,而适配器又连接到I/O总线。磁盘适配器可以做一些事情。它接受选择磁头、选择磁道和选择扇区的命令。它接受读取或写入当前选定磁头、磁道和扇区的字节块的命令。也可能会有一个命令,CPU可以在其中检查臂和磁盘的当前位置。
选择磁头的命令可以立即完成,但当它收到选择磁道的命令时,必须将磁头移动到该磁道,这就指令周期而言需要很长时间。当它收到选择扇区的命令时,它必须等待扇区旋转到磁头所在的位置,这在指令周期方面也需要很长时间。当CPU确定磁头已到达所需的磁道和扇区时,可以执行读或写的I/O命令,每次一个字节将通过I/O总线传输。读取或写入字节块的程序必须继续该过程,直到整个字节块完成。使用我们的简单I/O系统,单个字节在磁盘和CPU寄存器之间移动。正在运行的程序必须将这些字节移入或移出RAM,通常在连续的位置。
这就是磁盘的全部功能。说到计算机磁盘,在磁盘上写东西叫做写。从磁盘上取出东西叫做读取。将某些东西放入RAM称为写入或存储。从RAM中取出一些东西称为读取或检索。将某些东西放入CPU寄存器通常称为加载。将音乐放在磁盘上有时称为录制,有时称为刻录。听磁盘通常仍被称为播放,但如果您正在将其复制到计算机上,则称为翻录。写入、记录、存储、加载和刻录都意味着几乎相同的事情。阅读、检索、播放和翻录也非常相似。他们的意思相同,只是用词不同而已。
中断
中断是大多数计算机作为输入/输出系统的一部分。你知道,如果妈妈在厨房里搅拌一壶汤,小乔伊跑进来说“我想要一杯牛奶”,妈妈会放下勺子,走到橱柜,拿一杯,走到冰箱,倒牛奶,递给乔伊,然后她会回到炉子,拿起勺子,继续搅拌汤。汤的搅拌被一杯牛奶打断了,然后汤的搅拌又开始了。
大多数电脑都有这种东西,它被称为“中断”,它的工作原理与妈妈和乔伊发生的事情非常相似。中断从I/O总线上增加一条导线开始。某些设备适配器使用这条线,让CPU知道现在是CPU执行I/O操作的好时机,就像有人按下键盘上的键之后。当设备适配器打开中断位时,下次步进器返回步骤1时,下一个指令周期不会执行通常的获取和执行,而是执行以下操作:
该序列的结果是,当前的IAR和标志被保存到RAM地址0和1,并且它们被替换为RAM字节地址2和3的内容。然后CPU返回到其正常的提取和执行操作。但IAR已被替换!因此,下一条指令将从RAM字节2中的任何地址获取。
换句话说,CPU一直在做的事情被保存下来,CPU被派去做其他事情。如果在这个新活动结束时,程序将RAM字节0和1放回IAR和Flags,那么CPU将在中断之前从它停止的位置恢复。
这个系统对于处理I/O操作非常有用。如果没有中断,CPU中运行的程序必须确保定期检查I/O总线上的所有设备。有了中断,程序就可以做它设计做的任何事情,处理键盘输入之类的事情的程序将根据中断系统的需要自动调用。
我们没有把它包括在我们的CPU中,因为它只会使我们的控制部分接线图太大。它需要添加以下内容:步进器再增加两个步骤,布线以代替正常的指令周期,标志寄存器进出总线的路径,将二进制0、1、2或3发送到MAR的方法,以及将RAM字节0和1恢复到IAR和标志寄存器的指令。
这是一个中断系统。计算机设计者采用了一个现有的动词“中断”,并用了三种方式:它是“键盘中断程序”中的动词,是“这是中断系统”中的形容词,是“CPU执行中断”中的名词。