-
1 课文
-
2 课程视频
-
3 PPT
-
4 作业
-
5 拓展材料
2-1 Introduction to configurable computing
Computers that modify their hardware circuits as they operate are opening a new era in computer design. Because they can filter data rapidly, they excel at pattern recognition, image processing and encryption.
Computer designers face a constant struggle to find the right balance between speed and generality. They can build versatile chips that perform many different functions relatively slowly, or they can devise application-specific chips that do only a limited set of tasks but do them much more quickly. Microprocessors (such as the Intel Pentium or Motorola PowerPC chips commonly found in personal computers) are general purpose: programming instructions encoded in binary format can lead a microprocessor through virtually any logical or mathematical operation a programmer can conceive.[1] The Intel Pentium, for example, was never designed specifically to execute either Microsoft Word or the computer game DOOM, but it can run both.01
1. Configurable Computing
In contrast, custom hardware circuits, often known as application-specific integrated circuits (ASICs), provide precisely the functionality needed for a specific task. By carefully tuning each ASIC to a given job, the computer designer can produce a smaller, cheaper, faster chip that consumes less power than a programmable processor.[2] A custom graphics chip for a PC, for instance, can draw lines or paint pictures on the screen 10 or 100 times as quickly as a general-purpose central processing unit can.
As designers make their choices between versatility and speed, they must also confront the issue of cost. A well-designed ASIC will solve the specific problem for which it was designed, but probably not a slightly modified problem introduced after the ASIC design is finished. Furthermore, even if a modified ASIC can be developed for the new problem, the original hardware circuits may be too highly customized to be reused in successive generations. As a result, the engineering effort required to design and build an ASIC must be amortized over a relatively small number of units.
2. Programmable Circuitry
A new development in integrated circuits offers a third option: large, fast, field-programmable gate arrays, or FPGAs—highly tuned hardware circuits that can be modified at almost any point during use. FPGAs consist of arrays of configurable logic blocks that implement the logical functions of gates. Logic gates are like switches with multiple inputs and a single output. They are used in digital circuits to perform basic binary operations such as AND, NAND, OR, NOR and XOR; In most hardware that is used in computing today, the logical functions of gates are fixed and cannot be modified. In FPGAs, however, both the logic functions performed within the logic blocks and the connections between the blocks can be altered by sending signals to the chip. These blocks are structurally similar to the gate arrays used in some ASICs, but whereas standard gate arrays are configured during manufacture, the configurable logic blocks in FPGAs can be rewired and reprogrammed repeatedly, long after the integrated circuit has left the factory.[3]
The key that has opened the door to configurable computing is the design of new FPGAs that can be configured extremely quickly. The earliest field-programmable arrays required several seconds or more to change their connections—perfectly suitable for engineers who wanted to test alternative circuit designs or for companies that sold devices that might need occasional upgrading. Newer FPGAs can be configured in one millisecond, and we expect to see devices with configuration times as low as 100 microseconds within two years. Ultimately, computing devices may be able to adapt their hardware almost continuously in response to changes in the input data or processing environment.
There are many variations on FPGA design, but the basic structure consists of a large number of configurable logic blocks and a programmable grid of connections that can link those blocks in any pattern the designer chooses. Those FPGAs that are coarse grained have a small number of powerful configurable logic blocks; those with a finer-grained structure have many simple blocks. A single element in a coarse-grained FPGA might be capable of adding or comparing two numbers. One block in a fine-grained device might be capable only of comparing two binary digits—in effect, it would be a single logic gate. A designer might choose to start with either a coarse-or fine-grained chip depending on the application at hand and the amount of time available for building complex subsystems from scratch.
Computing devices can make use of configurable elements in many different ways. The least demanding technique is to switch between functions on command—the hardware equivalent of quitting one program and then running another.[4] Slow reconfiguration, on the order of several seconds, may well be acceptable in such an application. Faster programming times permit dynamic design swapping: a single FPGA performs a series of tasks in rapid succession, reconfiguring itself between each one. Such designs operate the chip in a time-sharing mode and swap between successive configurations so rapidly that it appears the FPGA is performing all its functions at once.
Using this approach, we have built a single-chip video transmission system that reconfigures itself four times per video frame. It thus requires only a quarter of the hardware that would be needed for a fixed ASIC. The FPGA first stores an incoming video signal in memory, then applies two different image-processing transformations and finally transforms itself into a modem to send the signal onward.
The most challenging and potentially most powerful form of configurable computing involves the hardware reconfiguring itself on the fly as it executes a task, refining its own programming for improved performance. An image-recognition chip might tune itself in response to a tentative identification of the object it is looking at: if an image contained a car or a truck, parts of the circuitry originally intended for tracking high-speed aircraft or slow-moving people could be reconfigured to focus instead on land vehicles. For some applications, such a radical departure from traditional computer design, in which the hardware is specified at the outset, could make for much faster and more versatile machines than are possible with either general-purpose microprocessors or custom chips.
WORDS AND PHRASES
encryption编密码,密码学
frame 帧
versatility 多功用性
swap 交换
ASIC (Application-Specific Integrated Circuits )专业集成电路设计
FPGA (Field-Programmable Gate Array) 现场可编程门阵列
NOTES
[1]. Programming instructions encoded in binary format can lead a microprocessor through virtually any logical or mathematical operation a programmer can conceive.
使用二进制格式编码的程序指令,可以指导微处理器完成程序员所设计的任何逻辑和数学的运算。
[2]. By carefully tuning each ASIC to a given job, the computer designer can produce a smaller, cheaper, faster chip that consumes less power than a programmable processor.
通过针对给定的工作来细心调整专用集成电路,计算机设计者可以制造出更小、更便宜、更快且比可编程处理器消耗更少能量的芯片。
[3]. These blocks are structurally similar to the gate arrays used in some ASICs, but whereas standard gate arrays are configured during manufacture, the configurable logic blocks in FPGAs can be rewired and reprogrammed repeatedly, long after the integrated circuit has left the factory.
这些逻辑块的结构和某些专用集成电路的中的门阵列类似,但标准门阵列在生产的时候就被配置好了,而现场可编程的门阵列中的逻辑块可以在集成电路出厂后很长时间里反复重新布线和重新编程。
[4]. The least demanding technique is to switch between functions on command—the hardware equivalent of quitting one program and then running another.
最基本的技术要求是,能根据不同的命令实现功能的转换,对应的硬件退出一个程序后运行另一个程序。

