1、2) 软件部分:菜谱是理想厨房系统中一个无重量、无体积、不会损坏、可经常更换的,但又极为重要的软件部件(即信息流部件)。菜谱由一个个加工步骤顺序组成。注意:术语“理想厨房系统”与“理想厨房”是有区别的,理想厨房只是理想厨房系统中的一个组成部分。理想厨房系统的构成简图如图1.1所示:理想厨房 自动冰箱 碟名 碟中物品 格子编号 格子(存放加工步骤或原料)R0R1 厨具R2 厨师PC 厨房管理员IR 材料传送带地址传送带控制传送带1234567图1.1理想厨房系统的构成简图(但图中没给出具体的软件)理想厨房中各种碟子的作用R0、R1、R2碟是一些通用临时存放碟,用来临时存放从冰箱取来的原材料或加工
2、了的半成品或成品。PC碟:存放下一条要执行的加工步骤位于冰箱的哪一格中(这是一个格子的数字编号)。IR碟:用来存放刚从冰箱取过来的加工步骤。 理想厨房执行菜谱的一个加工步骤,其流程完全是周期性的。厨房管理员首先要根据PC碟中的值(这个值表示:将要执行的菜谱中的加工步骤,位于冰箱的哪一格中),通过三套传送带的协调工作,到自动冰箱的指定格中去取菜谱中的一个加工步骤。取到理想厨房并把它放到IR碟中后(PC碟中的值将会加上1,为取下一个加工步骤做好准备),管理员还要阅读并分析此加工步骤;然后根据此加工步骤的指示,去做以下七类工作中的一种:1通过三套传送带,命令自动冰箱把指定地址格子中的(炒菜加工步骤马
3、上要用到的)原材料(通过材料传送带)传送到理想厨房中来即取物品;2命令厨师按照指令(即加工步骤)的要求,对原材料作一个基本加工操作(做“炒”,“蒸”,“煮”等基本操作步骤中的一个炒菜动作)即加工原材料。3通过向三套传送带向自动冰箱发命令,把某个碟子中的成品(或半成品)送回到冰箱指定的格子中存放即存物品;4在厨房的各个碟子或炊具之间传送原料或半成品在厨房内部进行物品传送 ;5根据某个状态碟中的具体条件(比如预定时间到了、温度够了),不按正常顺序取出并且执行下一条指令,而是根据此指令中给出的(冰箱格子的相对或绝对)地址,跳转到那一格中去取下一条指令即进行跳转。6命令传菜生端菜给顾客;即输出。7命令
4、配菜员为某菜配原材料;即输入。 一个加工步骤执行完后,理想厨房立即自动进行下一个完全类似的、新的取加工步骤执行加工步骤的周期。下面我们通过一个实例来讲述理想厨房系统的工作机制。这是本章的重点内容。1.2理想厨房系统的一个炒菜实例:现在,我们通过炒制一道香菇炒菜心的例子来说明理想厨房系统的工作过程。首先,把香菇放在冰箱地址为5的格子中,把菜心放在冰箱地址为6的格子中,冰箱地址为7号的格子,预留给炒好的菜使用。菜谱的所有加工步骤(又称为指令)从冰箱地址0号格开始依次按照顺序存放,编写香菇炒菜心的菜谱如下:地址0的格子中: 取地址5(中的物品)到R0碟;地址1的格子中: 取地址6(中的物品)到R1碟
5、;地址2的格子中: 将R0碟和R1碟倒入炒锅中炒好倒回R0碟;地址3的格子中: 送R0碟(中的物品)到地址7中;可见,一共有4个加工步骤。开始时理想厨房系统状态如下图1.3(注意:冰箱格子以及理想厨房碟子中存放的物品都用了斜体字)碟名 碟中物品 地址 冰箱格子中物品PC 0 厨房管理员 取取地址5到R0碟取地址6到R1碟;将R0和R1炒好倒入R2碟;送R2碟到地址7中;香菇菜心 图1.3菜谱设置完毕后,理想厨房系统开始自动化的工作。1),厨房管理员根据PC碟子中的数字“0”,知道要到冰箱地址为0的格子中取第一条指令(即加工步骤)。于是,厨房管理员向控制传送带上送出一个“取”信号,然后马上将PC
6、碟中的数字“0”复制后放到地址传送带上。这两个信号都会到达自动冰箱。自动冰箱收到这两个信号后,将0号格的内容复印件“取地址5到R0碟”放到材料传送带上,送往理想厨房。理想厨房收到后,将这条指令放到IR碟中。然后,厨房管理员将PC碟中的原来值增加1,以便为取下一条指令做好准备。取指令周期完成后,理想厨房系统处于如下图1.4状态:PC 1 厨房管理员IR 取地址5到R0碟图1.4 厨房管理员读到指令存放碟(即IR碟)中的加工步骤后,知道要到冰箱地址号为5的格子中去取原材料,并且取来后要放到R0碟中。因此,管理员向控制传送带上送出一个“取”信号,然后马上将5这个数放到地址传送带上。 冰箱收到“取”信
7、号后,知道理想厨房要取物品。然后,冰箱从地址传送带得到了5,于是冰箱将地址为5的格子中的物品“香菇”取出来,放到材料传送带上。 材料传送带上的物品“香菇”,传到理想厨房后,按照指令的要求(通过厨房内部的传送带)送到了R0碟中。第一条指令执行完后,理想厨房系统处于如下图1.5所示的状态:R0 香菇PC 1 厨房管理员 5菜心图1.52)接下来,开始执行下一条指令的取指周期,类似于前一条指令,在取指周期完成后,理想厨房系统处于如下图1.6状态:PC 2 厨房管理员IR 取地址6到R1碟; 1图1.6管理员分析指令存放碟中的加工步骤(指令)后,知道要到冰箱地址为6的格子中去取原材料,并且放到R1碟中
8、。因此,管理员向控制传送带上发一个“取”信号,然后马上将6这个数放到地址传送带上。 冰箱收到“取”信号后,知道理想厨房要取东西,然后,冰箱从地址传送带得到了6,于是冰箱将地址为6的格子中的物品“菜心”取出,放到材料传送带上。 材料传送带上的物品“菜心”,传到理想厨房后,按照指令的要求通过厨房内部的传送带被自动送到R1碟中。第二条指令执行完后理想厨房系统处于如下图1.7状态:理想厨房 自动冰箱R1 菜心 厨具 6图1.73)在第3条指令的取指周期完成后,理想厨房系统处于如下图1.8状态:R1 菜心 厨具R2 厨师PC 3 厨房管理员IR将R0和R1炒好倒入R2碟; 2 图 1.8 厨房管理员看到
9、IR碟中的内容后,命令厨师将R0碟和R1碟中的原材料倒入锅中炒好后,倒入R2碟中。完成后如图1.9R0香菇R1菜心 厨具R2香菇菜心 厨师 图1.94)第4条指令在取指令周期完成后,理想厨房系统,处于如下图1.10状态:PC 4 厨房管理员IR送R2碟到地址7中; 图1.10下面开始执行“送R2碟到地址7中”这条指令。厨房管理员分析指令存放碟中的加工步骤后,知道要将R2碟中的物品,送到冰箱地址为7的格子中去存放。于是,管理员向控制传送带上发一个“存”信号,然后马上将7这个数放到地址传送带上,最后将R2碟中的物品“香菇菜心”放到材料传送带上,送往冰箱。冰箱收到“存”信号后,知道理想厨房要存放物品
10、,然后,冰箱从地址传送带得到了7,于是自动冰箱(的机械手)在材料传送带旁,等待从理想厨房R2碟传来物品“香菇菜心”,一旦到达,自动冰箱就将其取下,并将其存放到地址号为7的格子中。完成后系统状态如图1.11:PC 4 厨房管理员取地址5中到R0碟取地址6中到R1碟;香菇菜心 图1.11至此,香菇菜心这道菜终于大功告成了。1.3理想厨房系统与计算机系统术语对照表理想厨房的工作原理,与计算机的工作原理是极为类似的。下面首先给出两个系统之间的术语对照表,见表1.1。表1.1术语对照表理想厨房系统电子数字计算机(简称计算机) 1.硬件设备自动冰箱(包含多个大小相等的格子)内存(又称为主存,包含很多大小相
11、等的基本存储单元) (冰箱中的)一个格子(内存中的)一个基本存储单元数据总线地址总线控制信号传送带控制总线理想厨房(包含以下设备)CPU(或称微处理器,包含以下部件)厨师及炒菜设备算术逻辑单元ALU(又称为运算器)厨房管理员控制单元(又称为控制器)通用临时存放碟通用寄存器指令地址存放碟PC指令地址寄存器(又称为程序计数器PC)指令存放碟IR指令寄存器(又称为IR寄存器) 状态存放碟状态寄存器专用加工容器专用寄存器采购员及配菜员输入设备(键盘、鼠标、网卡、U盘等)传菜生输出设备(显示器、打印机、网卡、U盘等)自动仓库外存(硬盘、U盘,但同时也属于输入输出设备) 2.软硬件之间的接口(编写菜谱或程
12、序的基本要素)冰箱格子的地址(即编号)内存中基本存储单元的地址(即编号)厨师可做的各种炒菜的基本动作(蒸、炒、炸、煮等)运算器可进行的各种基本运算(算术运算、逻辑运算等)碟子的名称寄存器的编码或代号 理想厨房可以执行的所有各种加工动作(指令)该类型计算机的指令集3.软件特殊菜谱(机器语言形式的) 程序加工步骤(机器)指令原材料数据 炒好的菜信息(或称为结果)精确的普通菜谱高级语言程序(又称为源程序或源代码) 简要的普通菜谱伪代码4. 系统的使用者编写特殊菜谱者用机器语言编程的程序员 编写精确的普通菜谱者用高级程序设计语言编程的程序员理想厨房系统的大堂经理和顾客计算机的用户在计算机上运行一个程序
13、时,上表中列出的计算机的各个部件会协同工作,完成任务(参见1.6节)。如果没有对理想厨房工作原理的详细讲解,由于出现了太多新的专业术语和名词,人们决对很难在短时间内,全面把握和理解这个计算机系统的工作原理的(对于任何一个初学者,这都是一件极其困难的事)。1.4预备知识:二进制及相关知识简介:虽然理论上可以使用任何进制(比如十进制)为基础来制造计算机,但现代计算机都是采用二进制的数字电子信号(制造电子计算机为何用数字信号而不用模拟信号,不用其他进制而用二进制,请参见本章提高部分)进行工作的机器。也就是说,在计算机的内部,只能以二进制的形式来存放、传输需要运行的指令和需要加工的数据的。 为了从底层
14、彻底把握计算机的基本工作原理,读者必须事先对二进制有所了解。以下简要介绍相关知识。1.5.1 二进制数的概念 首先,来看一张部分十进制数与二进制数的数值对照表: 十进制数 所对应的二进制数0 01 1 2 103 114 1005 101 6 110 7 111 8 10009 100110 1010 11 1011 12 110013 110114 111015 1111表 1.2 部分十进制数与二进制数的数值对照表一般情况下,用n位二进制可表示的最大正整数值是2n-1。比如:4位二进制可表示的最大正整数是24-1=15(即1111)2 。可见,二进制只能用两个数字“0”和“1”来进行计数(
15、或表示各种不同状态)。二进制加法运算的重要规则是: 1+1=10 ,即两个1相加产生向高位的进位。左边是高位数,右边是低位数(此外,其它加法规则还有:1+0=1、0+1=0、0+0=0)。我们用一对圆括号括住一个数值,并在圆括号外面加一个数字下标,来表示一个数是几进制数:比如(1011)10是一个十进制数;而(1011)2是一个二进制数。141将二进制整数转化成十进制整数一个十进制的数,其数值可用以下展开式来表示:比如3785(3785)10=3103+7102+8101+5100 (1)我们把(1)式中10的几次方称为权重,权重左边的乘数称为系数。(1)式中共有4个系数,从左到右依次是:“3
16、”“7”“8”“5”。可见,在数值数据中,越左边的数字(系数)权重越大。类似的,一个二进制数,其数值也可用以下展开式来表示:比如二进制数1011(1011)2= 123+022+121 +120 (2)此二进制数的值,等于十进制的18+04+12+11=8+2+1=(11)10 (3) 由此可以得到:二进制整数转化成十进制整数的一般方法:只要将该二进制整数(即1011)展开后的(2)式中的每一位的系数值,乘以这一位的转化成十进制数后的权重(即2的几次方),然后再将逐个乘积项的数值相加起来即可。练习1:将二进制数 11010010转换成十进制。142 将十进制整数转化成二进制数:1. 将十进制数
17、转换成二进制数的短除法:短除法把要转换的十进制整数不断的除以2然后取余数,商为0的时候结束。然后把余数倒着写出来。例如: 把84转换成二进制数即: (84)10= (1010100)2短除法实际上适用于将一个十进制整数转换为一个任意n(n2)进制的整数,只需将除数2变为n即可(参见例题)。可选练习1:查阅参考书(比如任何一本计算机导论或大学计算机基础),看看十进制的纯小数是如何转化为二进制的纯小数的。十进制的实数是如何转化为二进制的实数的。1.5数和码的含义和区别:什么是数? 数是表示事物的量的基本数学概念。什么是码?“码”是“编码”的简称。用预先规定的方法将文字、数字或其他对象编成数码,或将
18、信息、数据转换成规定的电脉冲信号。编码是信息从一种形式或格式转换为另一种形式的过程。解码,是编码的逆过程。151十进制的数和码:我们通过一个例子来说明十进制数字系统中数和码的区别如果3785用于表示数,则越高位(即越左边的位)的数字越重要(因为权重越大,在十进制数3785中,“3”的权重是103,而“5”的权重是100)。 而3785用于表示非数值的码,则每一位都同样重要。码值仅相差一位,所表示的文字(或代表的事物)可以有巨大的区别(比如:3785表示汉字“前”,而3786表示汉字“后”)。十进制的数字串“3785”由“3”、“7”、“8”、“5”组成。它既可以表示一个数值为三千七百八十五的十
19、进制数,也可以表示一个码为3785的汉字(或者表示任何别的什么10000个同类事物中的编码为3785的一个特定事物)。152二进制的数和码 与十进制一样,二进制数和二进制码也有类似的区别。只不过在二进制中只能用0和1组成的一个二进制数字串,来构成任何大小的数值或者表示具有任何含义的码。位:单个二进制数字我们称之为“位”(bit)。如果用一个位来表示整数值,只能表示0和1这两个值中之一。大于1的整数值用一个“位”表示不了。如果用单个“位”来表示码,则只能用来对(同属一种类型的)两种不同事物进行编码。比如:用1表示“真”,用0表示“假”;或者用 1 表示动物“猫”,用 0 表示动物“狗”;等等。位
20、串及其长度:任意多个二进制数字顺序排列在一起(比如:11011011100),我们称之为位串。位串中数字的个数我们称为位串的长度。如果用长度为2的一个位串来表示整数值,则能够表示00(即0)、01(即1)、10、11这4个整数值中的某一个。如果用长度为2的位串来进行编码,则能够用来对属于同一类型的4(即22)种不同的事物进行编码。编码和解码的一个实例 用00表示“东”、用01表示“南”、 用10表示“西”、 用11表示“北” 。这就构成了一张编码解码表(见表1.2)(这实质上是一张两个集合00、01、10、11和东、南、西、北的所有元素之间的一对一映射表)。二进制码集合中的元素00 东01 南
21、10 西11 北表1.2 编码解码表通过编码后,就可以用一些码(比如:1001)来间接地存储和传输一些方向值。因为这样既比较安全,又比较方便(一个二进制位串用数字电信号是很容易存储和传输的,而任何用文字表达的非数值数据是无法直接用电信号来存储和传送的)。达到目的地后,接收方也要有同样一张“编码解码表”,将这种接收到的二进制位串翻译成它的本来意义(比如将码值1001翻译成“西南”)。这个过程就称为解码。二进制位串的长度越长,可表示的数值范围就越大。一般的,长度为n位的二进制位串可表示的整数值是从0到2n-1(2n-1的值等于n个1组成的位串);长度为n位的二进制位串,一共有2n个码值,所以可对任意一个有2n个元素的集合进行编码。将一个码值与一个元素关联起来,生成一张编码解码表。153字节8位二进制在计算机、通信及其大量相关应用中,人们最关心的是长度为8位的二进制位串。这是由于现代的绝大多数计算机和数字化的通信网络设备,都是以8位二进制作为计量数据存储容量和传输容量的一种常用单位。我们把 一个8位二进制称为一个字节。如果用一个字节的位串来表示无符号的整数,则能够表示28=256个整数值。分别是从0到255,对应于二进制数从(00000000)2到(11111111)2 。如果用某一个字节的位串来表示一种非数值的编码,则能够用来表示256种同类事物中的一个
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1