Content area
Full Text
An IBM eServer zSeries(TM) system uses various types of microcode (firmware) that implement functions such as the execution of complex instructions in the CPUs, I/0 operations performed by the system assist processors (SAPs), the management of logical partitions (LPARs), and control by the support element (SE). Each microcode component must be verified by itself and in conjunction with the others. Tight development schedules and a very limited supply of expensive engineering hardware make it desirable to perform this verification in a simulation environment. For the development of the z900, a new microcode simulator, the z/CECSIM (Central Electronic Complex Simulator), was successfully implemented. Several microcode components are connected in a single simulation environment, thereby allowing
an unprecedented amount of development, integration, and testing without the use of
engineering hardware. z/CECSIM creates a virtual zSeries CEC on VM/ESA or z/VMT that allows the simulation of zSeries microcode. It executes the instruction stream as completely as possible on the underlying hardware. Only instructions that are newly introduced with the system being developed or that perform a microcode-internal function are simulated. Additional software models mimic the behavior of I/0 and coupling channels. An optional SE connection allows verification of interactions between the CEC and its support element.
Introduction In the IBM S/390* and zSeries* CECs there are two levels of microcode. The lowest level is designated as millicode; it implements functions that either are performance-critical or require direct control of the hardware [1, 21. Among other tasks, millicode implements complex instructions and interrupt handling, and participates in system functions such as reset and recovery. The millicode instruction set consists of a subset of those z900 instructions that are implemented directly in hardware, plus some special instructions that are valid only in millicode mode. Millicode is written in High-Level Assembler language.
The other level of microcode is designated as i390 (internal 390) [3]. It implements functions such as the channel subsystem or power-on reset. The i390 instruction set consists of all instructions implemented in hardware and by millicode; 1390 code is written in PL.8 (a dialect of PL/I), C, and High-Level Assembler language. The z900 CEC can run in two modes, basic and LPAR. In basic mode, z/Architecture* software runs on top of the microcode layers. In LPAR...