The Systolic/Cellular System Assembler: User's Guide
Files
Penn collection
General Robotics, Automation, Sensing and Perception Laboratory
Degree type
Discipline
Subject
Funder
Grant number
License
Copyright date
Distributor
Related resources
Author
Contributor
Abstract
As components are getting cheaper and smaller, computer systems are getting larger (in number of components) and more complex. In the new age of parallel computing comes entirely new domains of problems to solve. There are two ways to parallelize a problem. One is to restructure a known algorithm so that independent parts run in parallel. The other method is to restructure the problem so that it fits well onto parallel architectures. The Systolic/Cellular System is an array of processors which run in parallel. Its architecture was designed to implement a particular algorithm for matrix manipulation very well. This algorithm, called the Faddeev Algorithm, is well suited to solve a wide variety of operations such as matrix inverse, matrix multiplication, and matrix addition. It can also be used to calculate more complex problems such as the least squares problem and the inverse Jacobian. To efficiently implement this and other algorithms, it is necessary to program as close as possible to the architecture. The obvious way to do this is in machine code, but machine code is hard to read, tedious to write, and almost impossible to debug. The next step is to write an Assembler, and give mnemonics to the various operations, and making the system easier to program. This was the goal of my project. In this document you will find a user's manual for an Assembler for the Systolic/Cellular System. In it, I have described the architecture, issues involved in programming this machine, the input requirements of the Assembler, and a brief discussion on the architecture and how it can be improved to make it an easier machine to program.