广告

为“别人的设计”(SED)问题进行除错

2019-09-24 11:18:58 Dwight Bues, EE Times Guru 阅读:
你曾经不得不去除错或改善“别人的设计”(Someone Else's Design;SED)吗?你如何剥茧抽丝地找到问题发生的根源,以及如何发挥你的工程专业,解决那些棘手的问题?

一位知名的喜剧演员曾经创造了这句流行用语──“我很不喜欢这种感觉!”(I hate it when that happens!!!)。我其实完全能够了解那种感受。每一次当我不得不去破解、除错或改善“别人的设计”(Someone Else's Design;SED)时,我相信自己都说了这句话。3SRednc

有一天,我的老板给了我一个任务,要我去弄清楚一个基于VMEBus的处理器接口盒究竟是哪里出错了。由于这是在1990年代那个桌面计算机独大的“黑暗时代”(Dark Ages),这个接口盒中有一款摩托罗拉(Motorola) 68010微处理器,并采用汇编语言(而非C语言、JAVA或HTML)进行编码。我们所做的事就是将两个6RU机架高、以绕线连接且基于7400逻辑电路的客制化接口盒置入一个5RU高的VMEBus盒中,并使其维持与两个HP1000 Fast Fortran处理器的连接。3SRednc

这个界面盒表面平滑:前方的触控面板用于执行处理器的状态,并显示从接口所记录到的数据信息等。但这个接口盒原本面临的问题就十分吊诡──想想看,你如何能将10磅的东西放在承重仅5磅的袋子里?从封装、布线、后面板的连接器、电源以及冷却器看来都很正常。但问题是,为了尽量地节省机架空间等,设计人员采用了超越其能力所及的组装语言进行编码作业。3SRednc

原来的接口仅建置了‘L’模式。新的VMEBus设计则同时建置‘L’和‘S’模式,使复杂度增加了4倍。在‘L’模式下,每125微秒从144bit的数据框架下提取DF和NV位,使L模式成功地完成建置。3SRednc

然而,‘S’模式是一种新的编码方式。这种模式则是每四个193位、125ms提供一个DF和NV位。测试此模式后发现无法顺利运作。我怀疑问题就出在以汇编语言编码的逻辑电路建置上。我后来打了几次电话询问才知道当初的设计人员已经离职了,现在完全没人可回答有关他这一设计的任何问题了。3SRednc

我只好开始研究汇编程序码,发现设计人员对于所做的一切都进行了完整的建文件作业。但有关汇编语言所要解决的最大难题通常都跟“子程序”(subroutine)语言有关。如果你看到布满‘JSR’和‘RTS’的程序代码,你可就很难追踪到原来的逻辑建置作业了。很快地你就会发现,子程序存取作业也需要用到一些CPU周期来执行。而这就是在编写汇编语言时用于进行控制的关键参数。至于处理中断服务程序(ISR)就更棘手了,因为只要外部中断一发生,ISR就会随时启动执行。3SRednc

最后我终于发现,大部份用于寻找DF和NV的逻辑是透过ISR内部所执行的,每512微秒执行两次ISR作业。现在我几乎就要解决这个问题了。我找到了Motorola Assembler手册,然后开始增加执行ISR所需的CPU指令周期,接着就发现其中一个ISR无法在下一次中断发生前完成指令作业,因而不断地耗用CPU堆栈中的缓存器,直至内存耗尽后当机。3SRednc

实际动手进行修复可不简单。我花了一个多月的时间重新建置ISR,使ISR内部仅执行关键的指令集,并建立了一个可立即储存中间计算值的方式,以便使这些值也可用于ISR外部。3SRednc

这些修改终于完成且经测试过了,而这款接口盒在那之后还用了好多年。我自己对于这一点成绩也一直感到相当自豪。3SRednc

 (原文发表于ASPENCORE旗下EDN姐妹媒体EETimes,参考链接:The SED Problem,编译:Susan Hong)3SRednc

 3SRednc

  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
  • Nothing Phone 1 官方承认品控缺陷,但拆解后有新发现 前一加手机联合创始人裴宇创立的 Nothing 公司在国外备受关注,但Nothing Phone 1发布之后却被网友爆料大量翻车现场。目前官方也已承认了Nothing Phone 1 在前摄开孔位置附近出现了坏点或绿晕的问题。但Nothing Phone 1也并非一无是处,著名的 JerryRigEverything 耐用性测试就称其“超级坚固”。
  • 拆解一个中国产的“树莓派”开发笔记本,售价279美元值 “树莓派”在全球市越来越受欢迎,甚至有家长开始让孩子用树莓派学习开发产品。有中国厂商嗅到,率先开发出了基于“树莓派”笔记本——CrowPi L ,外观看和普通笔记本差不多, 但却是基于树莓派Raspberry Pi 4B 开发板的套件,专为 STEM 教育而设计,带有可选的电子模块和教程。EDN发现有外媒对其进行了拆解,接下来将这篇拆解文章分享给大家:
  • iFixit 拆解M2 MacBook Ai:没有散热器,但有用途不明的加 日前,iFixit发表了M2 MacBook Air的拆解视频,表示在M2 MacBook Air 中发现了新增的端口,以及加速度计。
  • “智能家居”未来将可通过呼吸控制操作 凯斯西储大学的研究人员创造了一个简单的原型设备,使用户能够通过改变他们的呼吸模式来控制“智能家居”。这种自供电装置可放入鼻孔,并有可能提高行动不便或无法清晰说话的人的生活质量。如果个人呼吸困难,它也可以编程为医务人员提供自动警报。
  • 小米12s系列发布:首款徕卡品牌、1 英寸摄像头传感器、 继一加牵手哈苏(HASSELBLAD)以及 Vivo 牵手蔡司之后,小米和徕卡在今年早些时候也宣布建立合作伙伴关系。小米在六月底宣布,小米 12S 系列将成为该交易的第一批手机,就在昨日,小米举办了小米12S系列新品发布会,包括小米12S、小米12S Pro、小米12S Ultra三款手机,这三款手机均提供徕卡 Summicron 镜头以减少眩光并提高透光率,同时还提供徕卡成像配置文件。
  • 拆解最新款M2 MacBook Pro ,苹果用旧硬件改造的“新” iFixit指出,即使是新款 M2 MacBook Pro 的底盖也与 2020 年推出的版本相同。两款机型的底部均刻有型号“A2338”以及相同的 FCC ID。这意味着苹果只是简单地回收了旧硬件,并在板上安装了新芯片。
  • 雷军官宣自研电池管理芯片“澎湃 G1”,及小米 12S系列 今日(7月1日),雷军在个人微博官宣新的自研芯片——小米澎湃G1电池管理芯片,该芯片将于7月4日与小米12S系列共同发布。此外,还分享了小米电池技术新进展、小米自研FBO焕新存储技术以及最新升级的叶脉冷泵散热技术。
  • AI视觉芯片如何赋能两轮车出行? 6月29日,在由全球领先的专业电子机构媒体AspenCore和深圳市新一代信息通信产业集群联合主办的“2022国际AIoT生态发展大会-智慧两轮车分论坛”中,嘉楠科技副总裁汤炜伟以《勘智AI视觉芯,赋能智眼两轮行》为主题,向大家分享了嘉楠地芯片设计创新历程,及其RISCV架构AI芯片技术路线图,并以具体案例展示AI视觉芯片如何赋能两轮车出行。
  • Arm发布第二代 Armv9 CPU及首款移动端支持光追的GPU 日前,Arm推出了基于Armv9架构新一代的CPU,包括Arm Cortex-X3、Arm Cortex-A715等,同时还带来了其首款在移动端支持硬件光线追踪的GPU——Immortalis GPU。这是自Arm去年3月发布全新v9架构、5月发布第一代基于v9架构产品后的第二次更新。
  • 用M2芯片升级M1 MacBook Pro,结果…… 虽然新款 MacBook 与上一代机型的硬件和外形尺寸大致相同,但 M2 芯片的升级带来了主要的性能和电池增益。YouTuber用户@ Luke Miani尝试使用 M2 芯片升级 M1 MacBook Pro。该UP主想知道,既然设计结构相同,那么将 M1 芯片换成 M2 芯片能否成功……
  • 英特尔张宇:边缘AI有三个阶段,我们还处在山脚 在AspenCore举办的“2022国际AIoT生态发展大会”上,英特尔公司高级首席工程师、物联网事业部中国区首席技术官张宇博士通过视频方式分享了“边缘AI技术发展趋势与展望”主题演讲。
  • 三星电子“试生产”3纳米,据称首位客户为中国半导体厂 据韩媒报道,三星电子计划最早于本周开始试产采用GAA工艺的3nm产品,并称第一个客户是中国的半导体公司。
广告
热门推荐
广告
广告
EE直播间
在线研讨会
广告
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了