Misplaced Pages

OpenVMS

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

Alpha (original name Alpha AXP ) is a 64-bit reduced instruction set computer (RISC) instruction set architecture (ISA) developed by Digital Equipment Corporation (DEC). Alpha was designed to replace 32-bit VAX complex instruction set computers (CISC) and to be a highly competitive RISC processor for Unix workstations and similar markets.

#603396

102-430: OpenVMS , often referred to as just VMS , is a multi-user , multiprocessing and virtual memory -based operating system . It is designed to support time-sharing , batch processing , transaction processing and workstation applications. Customers using OpenVMS include banks and financial services, hospitals and healthcare, telecommunications operators, network information services, and industrial manufacturers. During

204-663: A Microsoft Windows , macOS or Linux workstation. DEC created a number of optional database products for VMS, some of which were marketed as the VAX Information Architecture family. These products included: In 1994, DEC sold Rdb, DBMS and CDD to Oracle , where they remain under active development. In 1995, DEC sold DSM to InterSystems , who renamed it Open M , and eventually replaced it with their Caché product. Examples of third-party database management systems for OpenVMS include MariaDB , Mimer SQL ( Itanium and x86-64 ), and System 1032 . VMS

306-578: A microprocessor format. In October 1987, Sun Microsystems introduced the Sun-4 , their first workstation using their new SPARC processor. The Sun-4 runs about three to four times as fast as their latest Sun-3 designs using the Motorola 68020 , and any Unix offering from DEC. The plans changed again; PRISM was realigned once again as a 32-bit part and aimed directly at the Unix market. This further delayed

408-445: A single system image abstraction. Nodes may be connected to each other via a proprietary hardware connection called Cluster Interconnect or via a standard Ethernet LAN . OpenVMS supports up to 96 nodes in a single cluster. It also allows mixed-architecture clusters. OpenVMS clusters allow applications to function during planned or unplanned outages. Planned outages include hardware and software upgrades. The DECnet protocol suite

510-633: A terminal server such as one of the DECserver family. DEC (and its successor companies) provided a wide variety of programming languages for VMS. Officially supported languages on VMS, either current or historical, include: Among OpenVMS's notable features is the Common Language Environment , a strictly defined standard that specifies calling conventions for functions and routines, including use of stacks , registers , etc., independent of programming language. Because of this, it

612-408: A 21-bit displacement field. The Ra field specifies a register to be tested by a conditional branch instruction, and if the condition is met, the program counter is updated by adding the contents of the displacement field with the program counter. The displacement field contains a signed integer and if the value of the integer is positive, if the branch is taken then the program counter is incremented. If

714-546: A 64- or 128-bit result to the destination register, respectively. Since it is useful to obtain the most significant half, the Unsigned Multiply Quadword High (UMULH) instruction is provided. UMULH is used for implementing multi-precision arithmetic and division algorithms. The concept of a separate instruction for multiplication that returns the most significant half of a result was taken from PRISM . The instructions that operate on longwords ignore

816-414: A RISC-like system and leave more complex VAX instructions to system subroutines. Another concept was a pure RISC system that would translate existing VAX code into its own ISA on-the-fly and store it in a CPU cache . Finally, there was still the possibility of a much faster CISC processor running the complete VAX ISA. Unfortunately, all of these approaches introduced overhead and would not be competitive with

918-479: A VirtualBox VM with certain limitations; most significantly, few layered products were available, and code can only be compiled for x86-64 using cross compilers which run on Itanium-based OpenVMS systems. Following the V9.0 release, VSI released a series of updates on a monthly or bimonthly basis which added additional functionality and hypervisor support. These were designated V9.0-A through V9.0-H. In June 2021, VSI released

1020-465: A combined register file, but a split register file was determined to be better, as it enables two-chip implementations to have a register file located on each chip and integer-only implementations to omit the floating-point register file containing the floating-point registers. A split register file was also determined to be more suitable for multiple instruction issue due to the reduced number of read and write ports. The number of registers per register file

1122-459: A common kernel , allowing software for both platforms to be easily ported to the PRISM architecture. Started in 1985, the PRISM design was continually changed during its development in response to changes in the computer market, leading to lengthy delays in its introduction. It was not until the summer of 1987 that it was decided that it would be a 64-bit design, among the earliest such designs in

SECTION 10

#1732782758604

1224-738: A common definition. DEC provided a collection of software development tools in a layered product named DECset (originally named VAXset ). This consisted of the following tools: The OpenVMS Debugger supports all DEC compilers and many third-party languages. It allows breakpoints, watchpoints and interactive runtime program debugging using either a command line or graphical user interface . A pair of lower-level debuggers, named DELTA and XDELTA , can be used to debug privileged code in additional to normal application code. In 2019, VSI released an officially supported Integrated Development Environment for VMS based on Visual Studio Code . This allows VMS applications to be developed and debugged remotely from

1326-475: A distinction between 32-bit and 64-bit executables, but instead allows for both 32-bit and 64-bit pointers to be used within the same code. This is known as mixed pointer support. The 64-bit OpenVMS Alpha releases support a maximum virtual address space size of 8TiB (a 43-bit address space), which is the maximum supported by the Alpha 21064 and Alpha 21164 . One of the more noteworthy Alpha-only features of OpenVMS

1428-537: A few hardware dependencies based on its modelling of interrupts and memory paging. There appeared to be no compelling reason why VMS could not be ported to a RISC chip as long as these small bits of the model were preserved. Further work on this concept suggested this was a workable approach. Supnik took the resulting report to the Strategy Task Force in February 1989. Two questions were raised: could

1530-453: A head in a July 1988 management meeting. PRISM appeared to be faster than the R2000, but the R2000 machines could be in the market by January 1989, a year earlier than PRISM. When this proposal was accepted, one of the two original roles for PRISM disappeared. The decision to make a VMS PRISM had already ended by this point, so there was no remaining role. PRISM was cancelled at the meeting. As

1632-539: A higher level of privilege than most user code. This is in order to prevent accidental or malicious manipulation of the CLI's code and data structures by user-mode code. OpenVMS supports clustering (first called VAXcluster and later VMScluster ), where multiple computers run their own instance of the operating system. Clustered computers (nodes) may be fully independent from each other, or they may share devices like disk drives and printers. Communication across nodes provides

1734-508: A larger (or full) virtual address space. The Alpha ISA has a fixed instruction length of 32 bits. It has six instruction formats. The integer operate format is used by integer instructions. It contains a 6-bit opcode field, followed by the Ra field, which specifies the register containing the first operand and the Rb field, specifies the register containing the second operand. Next is a 3-bit field which

1836-465: A layered architecture, consisting of a privileged Executive , an intermediately privileged Command Language Interpreter, and unprivileged utilities and run-time libraries (RTLs). Unprivileged code typically invokes the functionality of the Executive through system services (equivalent to system calls in other operating systems). OpenVMS' layers and mechanisms are built around certain features of

1938-501: A level of compatibility with the VAX , the 32-bit architecture that preceded the Alpha, two other floating-point data types are included: VAX H-floating point (quad precision, 128-bit) was not supported, but another 128-bit floating-point option, X-floating point, is available on Alpha, but not VAX. H and X have been described as similar, but not identical. Software emulation for H-floating

2040-422: A longword-aligned virtual byte address, that is, the low two bits of the program counter are always zero. The PC is incremented by four to the address of the next instruction when an instruction is decoded. A lock flag and locked physical address register are used by the load-locked and store-conditional instructions for multiprocessor support. The floating-point control register (FPCR) is a 64-bit register defined by

2142-399: A potential bottleneck at the condition status register. Instructions resulting in an overflow, such as adding two numbers whose result does not fit in 64 bits, write the 32 or 64 least significant bits to the destination register. The carry is generated by performing an unsigned compare on the result with either operand to see if the result is smaller than either operand. If the test was true,

SECTION 20

#1732782758604

2244-627: A project to design a 32-bit extension to its PDP-11 computer line. The hardware component was code named Star ; the operating system was code named Starlet . Roger Gourd was the project lead for VMS. Software engineers Dave Cutler , Dick Hustvedt , and Peter Lipman acted as technical project leaders. The Star and Starlet projects culminated in the VAX-11/780 computer and the VAX/VMS operating system. The Starlet project's code name survives in VMS in

2346-520: A prototype Alpha EV3 -based Alpha Demonstration Unit in early 1991. The main challenge in porting VMS to a new architecture was that VMS and the VAX were designed together, meaning that VMS was dependent on certain details of the VAX architecture. Furthermore, a significant amount of the VMS kernel, layered products, and customer-developed applications were implemented in VAX MACRO assembly code. Some of

2448-461: A pure-RISC machine running native RISC code. The group then considered hybrid systems that combined one of their existing VAX one-chip solution and a RISC chip as a coprocessor used for high-performance needs. These studies suggested that the system would inevitably be hamstrung by the lower-performance part and would offer no compelling advantage. It was at this point that Nancy Kronenberg pointed out that people ran VMS, not VAX, and that VMS only had

2550-534: A register and a literal and write '1' to the destination register if the specified condition is true or '0' if not. The conditions are equality, inequality, less than or equal to, and less than. With the exception of the instructions that specify the former two conditions, there are versions that perform signed and unsigned compares. The integer arithmetic instructions use the integer operate instruction formats. The logical instructions consist of those for performing bitwise logical operations and conditional moves on

2652-412: A register is set or clear, or compare a register as a signed quadword to zero, and branch if the specified condition is true. The conditions available for comparing a register to zero are equality, inequality, less than, less than or equal to, greater than or equal to, and greater than. The new address is computed by longword aligning and sign extending the 21-bit displacement and adding it to the address of

2754-420: A team was set up to design new VAX/VMS systems of comparable performance to RISC -based Unix systems. After a number of failed attempts to design a faster VAX-compatible processor, the group demonstrated the feasibility of porting VMS and its applications to a RISC architecture based on PRISM. This led to the creation of the Alpha architecture. The project to port VMS to Alpha began in 1989, and first booted on

2856-473: A variety of non-Unix-like operating systems, such as Multics , VM/CMS , OpenVMS , MP/M , Concurrent CP/M , Concurrent DOS , FlexOS , Multiuser DOS , REAL/32 , OASIS , THEOS , PC-MOS , TSX-32 and VM/386 . Some multi-user operating systems such as Windows versions from the Windows NT family support simultaneous access by multiple users (for example, via Remote Desktop Connection ) as well as

2958-461: Is available from DEC, as is a source-code level converter named DECmigrate. The Alpha has a 64-bit linear virtual address space with no memory segmentation. Implementations can implement a smaller virtual address space with a minimum size of 43 bits. Although the unused bits were not implemented in hardware such as TLBs , the architecture required implementations to check whether they are zero to ensure software compatibility with implementations with

3060-495: Is developed and supported by VMS Software Inc. (VSI). OpenVMS offers high availability through clustering —the ability to distribute the system over multiple physical machines. This allows clustered applications and data to remain continuously available while operating system software and hardware maintenance and upgrades are performed, or if part of the cluster is destroyed. VMS cluster uptimes of 17 years have been reported. In April 1975, Digital Equipment Corporation embarked on

3162-616: Is further subdivided between the Kernel , which consists of the code which runs at the kernel access mode, and the less-privileged code outside of the Kernel which runs at the executive access mode. The components of the Executive which run at executive access mode include the Record Management Services , and certain system services such as image activation. The main distinction between the kernel and executive access modes

OpenVMS - Misplaced Pages Continue

3264-479: Is given by a register or literal. Logical and shift instructions use the integer operate instruction formats. Later Alphas include byte-word extensions, a set of instructions to manipulate 8-bit and 16-bit data types. These instructions were first introduced in the 21164A (EV56) microprocessor and are present in all subsequent implementations. These instructions perform operations that formerly required multiple instructions to implement, which improves code density and

3366-582: Is limited to 2 TiB volumes. DEC attempted to replace it with a log-structured file system named Spiralog, first released in 1995. However, Spiralog was discontinued due to a variety of problems, including issues with handling full volumes. Instead, there has been discussion of porting the open-source GFS2 file system to OpenVMS. An OpenVMS Command Language Interpreter (CLI) implements a command-line interface for OpenVMS, responsible for executing individual commands and command procedures (equivalent to shell scripts or batch files ). The standard CLI for OpenVMS

3468-412: Is most commonly used when talking about an operating system being usable only by one person at a time, or in reference to a single-user software license agreement . Multi-user operating systems such as Unix sometimes have a single user mode or runlevel available for emergency maintenance. Examples of single-user operating systems include MS-DOS , OS/2 and Classic Mac OS . DEC Alpha Alpha

3570-431: Is no instruction(s) for division as the architects considered the implementation of division in hardware to be adverse to simplicity. In addition to the standard add and subtract instructions, there are scaled versions. These versions shift the second operand to the left by two or three bits before adding or subtracting. The Multiply Longword and Multiply Quadword instructions write the least significant 32 or 64 bits of

3672-583: Is possible to call a routine written in one language (for example, Fortran) from another (for example, COBOL), without needing to know the implementation details of the target language. OpenVMS itself is implemented in a variety of different languages and the common language environment and calling standard supports freely mixing these languages. DEC created a tool named the Structure Definition Language (SDL), which allowed data type definitions to be generated for different languages from

3774-405: Is similar to the integer operate format, but has an 11-bit function field made possible by using the literal and unused bits which are reserved in integer operate format. The memory format is used mostly by load and store instructions. It has a 6-bit opcode field, a 5-bit Ra field, a 5-bit Rb field and a 16-bit displacement field. Branch instructions have a 6-bit opcode field, a 5-bit Ra field and

3876-445: Is that most of the operating system's core data structures can be read from executive mode, but require kernel mode to be written to. Code running at executive mode can switch to kernel mode at will, meaning that the barrier between the kernel and executive modes is intended as a safeguard against accidental corruption as opposed to a security mechanism. The Kernel comprises the operating system's core data structures (e.g. page tables,

3978-528: Is the DIGITAL Command Language , although other options are available. Unlike Unix shells , which typically run in their own isolated process and behave like any other user-mode program, OpenVMS CLIs are an optional component of a process, which exist alongside any executable image which that process may run. Whereas a Unix shell will typically run executables by creating a separate process using fork-exec , an OpenVMS CLI will typically load

4080-546: Is tightly integrated into VMS, allowing remote logins, as well as transparent access to files, printers and other resources on VMS systems over a network. VAX/VMS V1.0 featured support for DECnet Phase II, and modern versions of VMS support both the traditional Phase IV DECnet protocol, as well as the OSI-compatible Phase V (also known as DECnet-Plus ). Support for TCP/IP is provided by the optional TCP/IP Services for OpenVMS layered product (originally known as

4182-467: Is unused and reserved. A 1-bit field contains a "0", which distinguished this format from the integer literal format. A 7-bit function field follows, which is used in conjunction with the opcode to specify an operation. The last field is the Rc field, which specifies the register which the result of a computation should be written to. The register fields are all 5 bits long, required to address 32 unique locations,

OpenVMS - Misplaced Pages Continue

4284-438: The $ CMEXEC and $ CMKRNL system services, respectively. This allows code outside of system space to have direct access to the Executive's routines and system services. In addition to allowing third-party extensions to the operating system, Privileged Images are used by core operating system utilities to manipulate operating system data structures through undocumented interfaces. The typical user and application interface into

4386-590: The Apple Macintosh to serve as a terminal for VMS systems, or to use VMS systems as a file or print server. PATHWORKS was later renamed to Advanced Server for OpenVMS , and was eventually replaced with a VMS port of Samba at the time of the Itanium port. DEC provided the Local Area Transport (LAT) protocol which allowed remote terminals and printers to be attached to a VMS system through

4488-612: The Electric Pickle experiment at Western Research Lab. The number in the EV designations indicated the semiconductor process which the chip was designed for. For example, the EV4 processor used DEC's CMOS-4 process. In May 1997, DEC sued Intel for allegedly infringing on its Alpha patents in designing the original Pentium , Pentium Pro , and Pentium II chips. As part of a settlement, much of DEC's chip design and fabrication business

4590-562: The L4Ka::Pistachio kernel. A port of Ultrix to Alpha was carried out during the initial development of the Alpha architecture, but was never released as a product. The Alpha architecture was sold, along with most parts of DEC, to Compaq in 1998. Compaq, already an Intel x86 customer, announced that they would phase out Alpha in favor of the forthcoming Hewlett-Packard /Intel Itanium architecture, and sold all Alpha intellectual property to Intel, in 2001, effectively killing

4692-752: The VMS/ULTRIX Connection , then as the ULTRIX Communications Extensions or UCX). TCP/IP Services is based on a port of the BSD network stack to OpenVMS, along with support for common protocols such as SSH , DHCP , FTP and SMTP . DEC sold a software package named PATHWORKS (originally known as the Personal Computer Systems Architecture or PCSA) which allowed personal computers running MS-DOS , Microsoft Windows or OS/2 , or

4794-570: The file system is the Record Management Services (RMS), although applications can interface directly with the underlying file system through the QIO system services. The file systems supported by VMS are referred to as the Files-11 On-Disk Structures (ODS), the most significant of which are ODS-2 and ODS-5 . VMS is also capable of accessing files on ISO 9660 CD-ROMs and magnetic tape with ANSI tape labels . Files-11

4896-513: The 1990s and 2000s, there were approximately half a million VMS systems in operation worldwide. It was first announced by Digital Equipment Corporation (DEC) as VAX/VMS ( Virtual Address eXtension/Virtual Memory System ) alongside the VAX-11/780 minicomputer in 1977. OpenVMS has subsequently been ported to run on DEC Alpha systems, the Itanium -based HPE Integrity Servers , and select x86-64 hardware and hypervisors . Since 2014, OpenVMS

4998-414: The 32 integer registers. The integer literal format is used by integer instructions which use a literal as one of the operands. The format is the same as the integer operate format except for the replacement of the 5-bit Rb field and the 3 bits of unused space with an 8-bit literal field which is zero-extended to a 64-bit operand. The floating-point operate format is used by floating-point instructions. It

5100-648: The Alpha architecture in favour of adopting the then-new Itanium architecture. The porting began in late 2001, and the first boot on took place on January 31, 2003. The first boot consisted of booting a minimal system configuration on a HP i2000 workstation, logging in as the SYSTEM user, and running the DIRECTORY command. The Itanium port of OpenVMS supports specific models and configurations of HPE Integrity Servers . The Itanium releases were originally named HP OpenVMS Industry Standard 64 for Integrity Servers , although

5202-508: The I/O database and scheduling data), and the routines which operate on these structures. The Kernel is typically described as having three major subsystems: I/O, Process and Time Management, Memory Management. In addition, other functionality such as logical name management, synchronization and system service dispatch are implemented inside the Kernel. OpenVMS allows user-mode code with suitable privileges to switch to executive or kernel mode using

SECTION 50

#1732782758604

5304-693: The V3.0 release, all compatibility-mode utilities were replaced with native implementations. In VAX/VMS V4.0, RSX AME was removed from the base system, and replaced with an optional layered product named VAX-11 RSX . A number of distributions of VAX/VMS were created: With the V5.0 release in April 1988, DEC began to refer to VAX/VMS as simply VMS in its documentation. In July 1992, DEC renamed VAX/VMS to OpenVMS as an indication of its support of open systems industry standards such as POSIX and Unix compatibility, and to drop

5406-534: The V9.1 Field Test, making it available to VSI's customers and partners. V9.1 shipped as an ISO image which can be installed onto a variety of hypervisors, and onto HPE ProLiant DL380 servers starting with the V9.1-A release. During the 1980s, the MICA operating system for the PRISM architecture was intended to be the eventual successor to VMS. MICA was designed to maintain backwards compatibility with VMS applications while also supporting Ultrix applications on top of

5508-399: The VAX architecture, including: These VAX architecture mechanisms are implemented on Alpha, Itanium and x86-64 by either mapping to corresponding hardware mechanisms on those architectures, or through emulation (via PALcode on Alpha, or in software on Itanium and x86-64). The OpenVMS Executive comprises the privileged code and data structures which reside in the system space. The Executive

5610-811: The VAX connection since a migration to a different architecture was underway. The OpenVMS name was first used with the OpenVMS AXP V1.0 release in November 1992. DEC began using the OpenVMS VAX name with the V6.0 release in June 1993. During the 1980s, DEC planned to replace the VAX platform and the VMS operating system with the PRISM architecture and the MICA operating system. When these projects were cancelled in 1988,

5712-489: The ability for a user to disconnect from a local session while leaving processes running (doing work on their behalf) while another user logs into and uses the system. The operating system provides isolation of each user's processes from other users, while enabling them to execute concurrently . Management systems are implicitly designed to be used by multiple users, typically one system administrator or more and an end-user community. The complementary term, single-user ,

5814-411: The architecture intended for use by Alpha implementations with IEEE 754 -compliant floating-point hardware. In the Alpha architecture, a byte is defined as an 8-bit datum (octet), a word as a 16-bit datum, a longword as a 32-bit datum, a quadword as a 64-bit datum, and an octaword as a 128-bit datum. The Alpha architecture originally defined six data types: To maintain

5916-488: The changes included using the Extensible Firmware Interface (EFI) to boot the operating system, reimplementing the functionality previously provided by Alpha PALcode inside the kernel, using new executable file formats ( Executable and Linkable Format and DWARF ), and adopting IEEE 754 as the default floating point format. As with the VAX to Alpha port, a binary translator for Alpha to Itanium

6018-593: The changes needed to decouple VMS from the VAX architecture included the creation of the MACRO-32 compiler, which treated VAX MACRO as a high-level language , and compiled it to Alpha object code , and the emulation of certain low-level details of the VAX architecture in PALcode , such as interrupt handling and atomic queue instructions. The VMS port to Alpha resulted in the creation of two separate codebases: one for VAX , and another for Alpha. The Alpha code library

6120-497: The complex VAX architecture. The Alpha chips show that manual circuit design applied to a simpler, cleaner architecture allows for much higher operating frequencies than those that are possible with the more automated design systems. These chips caused a renaissance of custom circuit design within the microprocessor design community. Originally, the Alpha processors were designated the DECchip 21x64 series, with "DECchip" replaced in

6222-529: The design. Having watched the PRISM delivery date continue to slip, and facing the possibility of more delays, a team in the Palo Alto office decided to design their own workstation using another RISC processor. After due diligence , they selected the MIPS R2000 and built a working workstation running Ultrix in a period of 90 days. This sparked off an acrimonious debate within the company, which came to

SECTION 60

#1732782758604

6324-405: The establishment of the company, as well as the development of VSI's own Itanium and Alpha releases of OpenVMS V8.4-x. The x86-64 port is targeted for specific servers from HPE and Dell , as well as certain virtual machine hypervisors . Initial support was targeted for KVM and VirtualBox . Support for VMware was announced in 2020, and Hyper-V is being explored as a future target. In 2021,

6426-429: The executable image into the same process, transfer control to the image, and ensure that control is transferred back to CLI once the image has exited and that the process is returned to its original state. Because the CLI is loaded into the same address space as user code, and the CLI is responsible for invoking image activation and image rundown, the CLI is mapped into the process address space at supervisor access mode,

6528-529: The four privilege levels of OpenVMS in software since only two of x86-64's privilege levels are usable by OpenVMS. The first boot was announced on May 14, 2019. This involved booting OpenVMS on VirtualBox, and successfully running the DIRECTORY command. In May 2020, the V9.0 Early Adopter's Kit release was made available to a small number of customers. This consisted of the OpenVMS operating system running in

6630-432: The instruction following the conditional branch. Unconditional branches update the program counter with a new address computed in the same way as conditional branches. They also save the address of the instruction following the unconditional branch to a register. There are two such instructions, and they differ only in the hints provided for the branch prediction hardware. There are four jump instructions. These all perform

6732-422: The integer registers and floating-point registers. The Alpha 21264 (EV6) is the first microprocessor to implement these instructions. Count Extensions (CIX) is an extension to the architecture which introduces three instructions for counting bits. These instructions are categorized as integer arithmetic instructions. They were first implemented on the Alpha 21264A (EV67). At the time of its announcement, Alpha

6834-522: The integer registers. The bitwise logical instructions perform AND , NAND , NOR , OR , XNOR , and XOR between two registers or a register and literal. The conditional move instructions test a register as a signed quadword to zero and move if the specified condition is true. The specified conditions are equality, inequality, less than or equal to, less than, greater than or equal to, and greater than. The shift instructions perform arithmetic right shift , and logical left and right shifts . The shift amount

6936-489: The meeting broke up, Bob Supnik was approached by Ken Olsen , who stated that the RISC chips appeared to be a future threat to their VAX line. He asked Supnik to consider what might be done with VAX to keep it competitive with future RISC systems. This led to the formation of the "RISCy VAX" team. They initially considered three concepts. One was a cut-down version of the VAX instruction set architecture (ISA) that would run on

7038-479: The mid-1990s with "Alpha". The first two digits, "21" signifies the 21st century, and the last two digits, "64" signifies 64 bits. The Alpha was designed as 64-bit from the start and there is no 32-bit version. The middle digit corresponds to the generation of the Alpha architecture. Internally, Alpha processors were also identified by EV numbers, EV officially standing for "Extended VAX" but having an alternative humorous meaning of "Electric Vlasic ", giving homage to

7140-485: The most innovative of their time. A persistent report attributed to DEC insiders suggests the choice of the AXP tag for the processor was made by DEC's legal department, which was still smarting from the VAX trademark fiasco. After a lengthy search the tag "AXP" was found to be entirely unencumbered. Within the computer industry, a joke got started that the acronym AXP meant "Almost eXactly PRISM". The Alpha architecture

7242-469: The most significant half of the register and the 32-bit result is sign-extended before it is written to the destination register. By default, the add, multiply, and subtract instructions, with the exception of UMULH and scaled versions of add and subtract, do not trap on overflow. When such functionality is required, versions of these instructions that perform overflow detection and trap on overflow are provided. The compare instructions compare two registers or

7344-846: The name of several of the system libraries, including STARLET.OLB and STARLET.MLB . VMS was mostly written in VAX MACRO with some components written in BLISS . One of the original goals for VMS was backward compatibility with DEC's existing RSX-11M operating system. Prior to the V3.0 release, VAX/VMS included a compatibility layer named the RSX Application Migration Executive (RSX AME), which allowed user-mode RSX-11M software to be run unmodified on top of VMS. The RSX AME played an important role on early versions of VAX/VMS, which used certain RSX-11M user-mode utilities before native VAX versions had been developed. By

7446-485: The names OpenVMS I64 or OpenVMS for Integrity Servers are more commonly used. The Itanium port was accomplished using source code maintained in common within the OpenVMS Alpha source code library, with the addition of conditional code and additional modules where changes specific to Itanium were required. This required certain architectural dependencies of OpenVMS to be replaced, or emulated in software. Some of

7548-403: The others with a 26-bit function field, which contains an integer specifying a PAL subroutine. The control instructions consist of conditional and unconditional branches, and jumps. The conditional and unconditional branch instructions use the branch instruction format, while the jump instructions use the memory instruction format. Conditional branches test whether the least significant bit of

7650-556: The performance of certain applications. BWX also makes the emulation of x86 machine code and the writing of device drivers easier. Motion Video Instructions (MVI) was an instruction set extension to the Alpha ISA that added instructions for single instruction, multiple data (SIMD) operations. Alpha implementations that implement MVI, in chronological order, are the Alpha 21164PC (PCA56 and PCA57), Alpha 21264 (EV6) and Alpha 21364 (EV7). Unlike most other SIMD instruction sets of

7752-535: The pre-production quality releases of OpenVMS AXP confused some customers, and was not repeated in the subsequent ports of OpenVMS to new platforms. When VMS was ported to Alpha, it was initially left as a 32-bit only operating system. This was done to ensure backwards compatibility with software written for the 32-bit VAX. 64-bit addressing was first added for Alpha in the V7.0 release. In order to allow 64-bit code to interoperate with older 32-bit code, OpenVMS does not create

7854-673: The primary command language interpreter (CLI) of OpenVMS since the first release. Other official CLIs available for VMS include the RSX-11 Monitor Console Routine (MCR) (VAX only), and various Unix shells . DEC provided tools for creating text-based user interface applications – the Form Management System (FMS) and Terminal Data Management System (TDMS), later succeeded by DECforms . A lower level interface named Screen Management Services (SMG$ ), comparable to Unix curses , also exists. Over

7956-596: The product. Hewlett-Packard purchased Compaq in 2002, continuing development of the existing product line until 2004, and selling Alpha-based systems, largely to the existing customer base, until April 2007. Alpha emerged from an earlier RISC project named Parallel Reduced Instruction Set Machine ( PRISM ), itself the product of several earlier projects. PRISM was intended to be a flexible design, supporting Unix-like applications, and Digital's existing VAX/VMS software, after minor conversion. A new operating system named MICA would support both ULTRIX and VAX/VMS interfaces on

8058-614: The purpose, but was inefficient in MPEG-2 encoding. The second reason is the requirement to retain the fast cycle times of implementations. Adding many instructions would have complicated and enlarged the instruction decode logic, reducing an implementation's clock frequency. MVI consists of 13 instructions: Floating-point extensions (FIX) are an extension to the Alpha Architecture. It introduces nine instructions for floating-point square-root and for transferring data to and from

8160-462: The resulting RISC design also be a performance leader in the Unix market, and should the machine be an open standard? And with that, the decision was made to adopt the PRISM architecture with the appropriate modifications. This became the "EVAX" concept, a follow-on to the successful CMOS CVAX implementation. When management accepted the findings, they decided to give the project a more neutral name, removing "VAX", eventually settling on Alpha. The name

8262-550: The same kernel. MICA was ultimately cancelled along with the rest of the PRISM platform, leading Dave Cutler to leave DEC for Microsoft. At Microsoft, Cutler led the creation of the Windows NT operating system, which was heavily inspired by the architecture of MICA. As a result, VMS is considered an ancestor of Windows NT , together with RSX-11 , VAXELN and MICA, and many similarities exist between VMS and NT. A now-defunct project named FreeVMS attempted to develop an open-source operating system following VMS conventions. FreeVMS

8364-423: The same operation, saving the address of the instruction following the jump, and providing the program counter with a new address from a register. They differ in the hints provided to the branch prediction hardware. The unused displacement field is used for this purpose. The integer arithmetic instructions perform addition, multiplication, and subtraction on longwords and quadwords; and comparison on quadwords. There

8466-501: The same period, such as MIPS ' MDMX or SPARC 's Visual Instruction Set , but like PA-RISC 's Multimedia Acceleration eXtensions (MAX-1, MAX-2), MVI was a simple instruction set composed of a few instructions that operate on integer data types stored in existing integer registers. MVI's simplicity is due to two reasons. Firstly, Digital had determined that the Alpha 21164 was already capable of performing DVD decoding through software, therefore not requiring hardware provisions for

8568-489: The term " multitasking " is more common in this context. An example is a Unix or Unix-like system where multiple remote users have access (such as via a serial port or Secure Shell ) to the Unix shell prompt at the same time. Another example uses multiple X Window sessions spread across multiple terminals powered by a single machine – this is an example of the use of thin client . Similar functions were also available in

8670-475: The value of the integer is negative, then program counter is decremented if the branch is taken. The range of a branch thus is ±1 Mi instructions, or ±4 MiB. The Alpha Architecture was designed with a large range as part of the architecture's forward-looking goal. The CALL_PAL format is used by the CALL_PAL instruction, which is used to call PALcode subroutines. The format retains the opcode field but replaces

8772-690: The value one is written to the least significant bit of the destination register to indicate the condition. The architecture defines a set of 32 integer registers and a set of 32 floating-point registers in addition to a program counter , two lock registers and a floating-point control register (FPCR). It also defines registers that were optional, implemented only if the implementation required them. Lastly, registers for PALcode are defined. The integer registers are denoted by R0 to R31 and floating-point registers are denoted by F0 to F31. The R31 and F31 registers are hardwired to zero and writes to those registers by instructions are ignored. Digital considered using

8874-410: The x86-64 port was demonstrated running on an Intel Atom -based single-board computer . As with the Alpha and Itanium ports, the x86-64 port made some changes to simplify porting and supporting OpenVMS on the new platform including: replacing the proprietary GEM compiler backend used by the VMS compilers with LLVM , changing the boot process so that OpenVMS is booted from a memory disk, and simulating

8976-487: The years, VMS has gone through a number of different GUI toolkits and interfaces: Multi-user Multi-user software is computer software that allows access by multiple users of a computer . Time-sharing systems are multi-user systems. Most batch processing systems for mainframe computers may also be considered "multi-user", to avoid leaving the CPU idle while it waits for I/O operations to complete. However,

9078-523: Was OpenVMS Galaxy , which allowed the partitioning of a single SMP server to run multiple instances of OpenVMS. Galaxy supported dynamic resource allocation to running partitions, and the ability to share memory between partitions. In 2001, prior to its acquisition by Hewlett-Packard , Compaq announced the port of OpenVMS to the Intel Itanium architecture. The Itanium port was the result of Compaq's decision to discontinue future development of

9180-517: Was a superpipelined and superscalar design, like other RISC designs, but nevertheless outperformed them all and DEC touted it as the world's fastest processor. Careful attention to circuit design, a hallmark of the Hudson design team, like a huge centralized clock circuitry, allowed them to run the CPU at higher speeds, even though the microarchitecture was fairly similar to other RISC chips. In comparison,

9282-415: Was also considered, with 32 and 64 being contenders. Digital concluded that 32 registers was more suitable as it required less die space, which improves clock frequencies. This number of registers was deemed not to be a major issue in respect to performance and future growth, as thirty-two registers could support at least eight-way instruction issue. The program counter is a 64-bit register which contains

9384-411: Was based on a snapshot of the VAX/VMS code base circa V5.4-2. 1992 saw the release of the first version of OpenVMS for Alpha AXP systems, designated OpenVMS AXP V1.0 . In 1994, with the release of OpenVMS V6.1, feature (and version number) parity between the VAX and Alpha variants was achieved; this was the so-called Functional Equivalence release. The decision to use the 1.x version numbering stream for

9486-542: Was built on top of the L4 microkernel and supported the x86-64 architecture. Prior work investigating the implementation of VMS using a microkernel-based architecture had previously been undertaken as a prototyping exercise by DEC employees with assistance from Carnegie Mellon University using the Mach 3.0 microkernel ported to VAXstation 3100 hardware, adopting a multiserver architectural model. The OpenVMS operating system has

9588-517: Was developed into the Alpha's PALcode , providing an abstracted interface to platform- and processor implementation-specific features. The main contribution of Alpha to the microprocessor industry, and the main reason for its performance, is not so much the architecture but rather its implementation. At that time (as it is now), the microchip industry was dominated by automated design and layout tools. The chip designers at Digital continued pursuing sophisticated manual circuit design in order to deal with

9690-553: Was heralded as an architecture for the next 25 years. While this was not to be, Alpha has nevertheless had a reasonably long life. The first version, the Alpha 21064 (otherwise named the EV4 ) was introduced in November 1992 running at up to 192 MHz; a slight shrink of the die (the EV4S , shrunk from 0.75 μm to 0.675 μm) ran at 200 MHz a few months later. The 64-bit processor

9792-746: Was implemented in a series of microprocessors originally developed and fabricated by DEC. These microprocessors were most prominently used in a variety of DEC workstations and servers, which eventually formed the basis for almost all of their mid-to-upper-scale lineup. Several third-party vendors also produced Alpha systems, including PC form factor motherboards. Operating systems that support Alpha included OpenVMS (formerly named OpenVMS AXP), Tru64 UNIX (formerly named DEC OSF/1 AXP and Digital UNIX), Windows NT (discontinued after NT 4.0 ; and prerelease Windows 2000 RC2 ), Linux ( Debian , SUSE , Gentoo and Red Hat ), BSD UNIX ( NetBSD , OpenBSD and FreeBSD up to 6.x), Plan 9 from Bell Labs , and

9894-522: Was inspired by the use of "Omega" as the codename of an NVAX -based VAX 4000 model; "Alpha" was intended to signify the beginning of a new line (with reference to Alpha and Omega ). Soon after, work began on a port of VMS to the new architecture . The new design uses most of the basic PRISM concepts, but was re-tuned to allow VMS and VMS programs to run at reasonable speed with no conversion at all. The primary Alpha instruction set architects were Richard L. Sites and Richard T. Witek. The PRISM's Epicode

9996-401: Was intended to be a high-performance design. Digital intended the architecture to support a one-thousandfold increase in performance over twenty-five years. To ensure this, any architectural feature that impeded multiple instruction issue, clock rate or multiprocessing was removed. As a result, the Alpha does not have: The Alpha does not have condition codes for integer instructions to remove

10098-707: Was made available, allowing user-mode OpenVMS Alpha software to be ported to Itanium in situations where it was not possible to recompile the source code. This translator is known as the Alpha Environment Software Translator (AEST), and it also supported translating VAX executables which had already been translated with VEST. Two pre-production releases, OpenVMS I64 V8.0 and V8.1, were available on June 30, 2003, and on December 18, 2003. These releases were intended for HP organizations and third-party vendors involved with porting software packages to OpenVMS I64. The first production release, V8.2,

10200-630: Was originally designed to be used and managed interactively using DEC's text-based video terminals such as the VT100 , or hardcopy terminals such as the DECwriter series. Since the introduction of the VAXstation line in 1984, VMS has optionally supported graphical user interfaces for use with workstations or X terminals such as the VT1000 series. The DIGITAL Command Language (DCL) has served as

10302-422: Was released in February 2005. V8.2 was also released for Alpha; subsequent V8.x releases of OpenVMS have maintained feature parity between the Alpha and Itanium architectures. When VMS Software Inc. (VSI) announced that they had secured the rights to develop the OpenVMS operating system from HP, they also announced their intention to port OpenVMS to the x86-64 architecture. The porting effort ran concurrently with

10404-564: Was sold to Intel. This included DEC's StrongARM implementation of the ARM computer architecture , which Intel marketed as the XScale processors commonly used in Pocket PCs . The core of Digital Semiconductor, the Alpha microprocessor group, remained with DEC, while the associated office buildings went to Intel as part of the Hudson fab. The first few generations of the Alpha chips were some of

#603396