但他强迫自己理解,不懂就问,问陈启明,问组里其他人。
午饭时,他端着饭盒,一边吃一边看笔记。
杨振华坐过来,看了眼他正在看的内容。
“指令编码这一章?”杨振华问。
“嗯,看不懂。”陈星老实说,“为什么要设计这么多寻址方式?直接寻址、间接寻址、立即寻址、变址寻址……太复杂了。”
“为了灵活。”杨振华拿过他的笔,在桌上画起来,“你看,假如你要处理一个数组。”
“如果用直接寻址,你得知道每个元素的具体地址,太麻烦。”
“但用变址寻址,只需要一个基地址,一个偏移量,循环起来方便多了。”
他简单几笔,画出了一个循环读取数组的示例。
陈星恍然大悟:“原来是这样……那中断又是为什么?”
“让CPU能同时处理多个任务。”杨振华继续画,“比如你在计算,突然有键盘输入。”
“如果没有中断,你得不停地去查键盘有没有按,浪费CPU时间。”
“有了中断,键盘按下去,发个信号,CPU暂停手头工作,先去处理输入,处理完再回来继续计算。”
“我明白了!”陈星眼睛发亮,“就像……就像一个人本来在看书,突然电话响了,他接完电话再回来看书。”
“对,就是这个意思。”杨振华笑了,“你很会比喻。搞技术的人,有时候缺的就是这种把复杂问题简单化的能力。”
陈星不好意思地挠挠头:“我是真不懂,所以只能想些土办法理解。”
“土办法才是好办法。”杨振华认真说,“技术归根结底,是为了解决实际问题。能解决问题的办法,就是好办法。”
吃完饭,陈星继续看笔记。
下午的讨论会,他坐在角落里,认真听,拼命记。
讨论很激烈。
关于指令集应该设计多少条指令,大家争得面红耳赤。
“指令越多,功能越强!”一个技术员说。
“但电路越复杂,成本越高,出错概率越大!”另一个反驳。
“要兼顾,既不能太少,也不能太多……”
陈启明听着,偶尔插话引导,但大多数时间让年轻人自己争论。
等大家吵得差不多了,他才开口:“小陈,你说说看。”
所有人都看向陈星。
陈星愣住了。
他一个新人,刚来第一天,哪有资格在这种问题上发言?
“别怕,想到什么说什么。”陈启明鼓励道。