Title: Question No.1

Question:
         What is the difference between the following?
  •  A general-purpose processor
  •  A general-purpose processor with instruction-set extensions
  •  A special-purpose processor (or co-processor)
 
Motivation:
         一眼看上去这个问题和密码学似乎关系不大,其实52 Things当中也把这个问题列为computer engineering小节中的一项。我们认为这个问题起码在下面这个方面和密码学关系密切:
Computational Security analysis: 我们分析密码体制的计算安全性,一般可以采用两种方式:concrete或者asymptotic。虽然绝大多数文献都采用asymptotic方式,真正估计安全参数的实际要求,还是需要使用concrete方式进行计算。这时就需要对敌手的计算能力有一个估计,专用处理器和通用处理器的计算速度差距相当大,我们需要分别考虑,例如使用EFF制造的DES Cracker和使用通用处理器在***DES上效率的巨大差距。
Answer:
         General-purpose processor: 计算理论上Universal Turing Machine的现实实现,不局限与某种特定的计算任务,可以模拟任何一个特定的Turing machine,完成任何计算任务,而且这种处理器因为大规模生产,造价最为低廉。例如最为常用的Intel x86系列芯片。
         General-purpose processor with instruction set: 任何一个计算任务都需要分割成若干的步骤,某些步骤相对复杂,需要还原成多步的机器码计算。例如,密码学中最常用的长整数运算,真正在CPU计算时需要非常多的运算步骤。为了提高运算效率,仅仅优化软件算法是不够了,需要修改硬件实现,加入新的指令集。一般的通用处理器是不支持这样的修改的,需要ASIC和FPGA等技术的支持。这种处理器造价相对较高。
         Special-purpose processor: 专用于执行特定任务的处理器,内存、总线、指令集等等都为了这个任务进行优化和定制,不能用于其它类型的计算任务。这种处理器需求最少,造价也最高。这种处理器的计算能力未必超过general-purpose processor,例如Apollo Guidance Computer,CPU主频仅有1Mhz。
 
References: