The PDP-6 , short for Programmed Data Processor model 6, is a computer developed by Digital Equipment Corporation (DEC) during 1963 and first delivered in the summer of 1964. It was an expansion of DEC's existing 18-bit systems to use a 36-bit data word, which was at that time a common word size for large machines like IBM mainframes . The system was constructed using the same germanium individual transistor -based System Module layout as DEC's earlier machines, like the PDP-1 and PDP-4 .
52-451: The system was designed with real-time computing use in mind, not just batch processing as was typical for most mainframes. Using a 36-bit word with 18-bit addresses allowed it to efficiently store the cons structure found in the Lisp language, which made it particularly useful in artificial intelligence labs like Project MAC at MIT . It was also complex, expensive, and unreliable as
104-497: A hard real-time system is to ensure that all deadlines are met, but for soft real-time systems the goal becomes meeting a certain subset of deadlines in order to optimize some application-specific criteria. The particular criteria optimized depend on the application, but some typical examples include maximizing the number of deadlines met, minimizing the lateness of tasks and maximizing the number of high priority tasks meeting their deadlines. Hard real-time systems are used when it
156-485: A PDP-2 and PDP-3 were turned down, and DEC's next machine, the PDP-4 , was essentially a smaller and less-expensive PDP-1 that sold for roughly half the cost. The PDP-5 was built from the same components, but used a 12-bit word for even greater savings and sold for about US$ 27,000 (equivalent to $ 268,709 in 2023). The PDP-6 was DEC's first "big" machine. It used 36-bit words , in common with other large computers at
208-423: A chess program designed to play in a tournament with a clock will need to decide on a move before a certain deadline or lose the game, and is therefore a real-time computation, but a chess program that is allowed to run indefinitely before moving is not. In both of these cases, however, high performance is desirable: the more work a tournament chess program can do in the allotted time, the better its moves will be, and
260-475: A mixture of hard real-time and non real-time applications. Firm real-time systems are more nebulously defined, and some classifications do not include them, distinguishing only hard and soft real-time systems. Some examples of firm real-time systems: Soft real-time systems are typically used to solve issues of concurrent access and the need to keep a number of connected systems up-to-date through changing situations. Some examples of soft real-time systems: In
312-559: A new 36-bit system was designed using the new Flip-Chip modules and much smaller system boards to improve density and reliability. The resulting design was released in 1966 as the PDP-10 . DEC describes this machine as the successor to the PDP-6. Although it was program-compatible with the PDP-6, it ran roughly twice as fast, had both timesharing and batch processing features, and offered a wide variety of expansions and input/output options. It
364-440: A real-time digital signal processing (DSP) process, the analyzed (input) and generated (output) samples can be processed (or generated) continuously in the time it takes to input and output the same set of samples independent of the processing delay. It means that the processing delay must be bounded even if the processing continues for an unlimited time. That means that the mean processing time per sample, including overhead ,
416-564: A real-time system: temporal failures (delays, time-outs, etc.) are typically small and compartmentalized (limited in effect) but are not catastrophic failures . In a real-time system, such as the FTSE 100 Index , a slow-down beyond limits would often be considered catastrophic in its application context. The most important requirement of a real-time system is consistent output, not high throughput. Some kinds of software, such as many chess-playing programs , can fall into either category. For instance,
468-509: A real-world process is simulated at a rate that matched that of the real process (now called real-time simulation to avoid ambiguity). Analog computers , most often, were capable of simulating at a much faster pace than real-time, a situation that could be just as dangerous as a slow simulation if it were not also recognized and accounted for. Minicomputers, particularly in the 1970s onwards, when built into dedicated embedded systems such as DOG ( Digital on-screen graphic ) scanners, increased
520-491: A result of its use of so many early-model transistors. Only 23 were sold, at prices ranging from $ 120,000 to $ 300,000. The lasting influence of the PDP-6 was its re-implementation using modern silicon transistors and the newer Flip-Chip module packaging to produce the PDP-10 . The instruction sets of the two machines are almost identical. The PDP-10 was less expensive and more reliable, and about 1500 were sold during its lifetime. DEC's first products were not computers but
572-464: A series of plug-in circuits known as Digital Laboratory Modules that performed digital logic. Users could wire the modules together to perform specific tasks. DEC soon introduced the PDP-1 which was built out of large numbers of these modules, now known as System Building Blocks or System Modules . The PDP-1 used an 18-bit word. Word lengths in the early 1960s were generally some multiple of six bits, as
SECTION 10
#1732773396653624-504: A similar functionality by selecting a second register as an index register , allowing memory to be stepped through by changing the value in the register rather than in main memory , which is generally faster. The registers in the PDP-6 were simply the first 16 memory locations of main memory. Most, if not all, PDP-6 systems were equipped with the optional Type 162 "Fast Memory", which constructed these 16 memory locations from discrete-transistor flip-flops. These operated four times as fast as
676-570: A single disk drive, resulted in "real time-sharing (and) could easily handle 20-30 users." Stanford's PDP-6 was shown at DECUS in 1984. The machine was transferred to a DEC warehouse after that event. There are no records of this machine being given to the Computer Museum, which was not part of DEC in 1984. In the late 1990s Compaq donated the contents of the DEC internal archives to The Computer Museum History Center. The Fast Memory cabinet from
728-459: A single memory location; this made it suited to the storage of a cons , a widely used structure in the Lisp language, meaning the PDP-6 could store a cons in a single word and read and write one in a single operation. The instruction set architecture could be categorized as "one-and-a-half address". The opcode was stored in the most significant bits of the 36-bit word, using 9 bits. The next four bits indicate which of sixteen registers to apply
780-460: A specified deadline relative to an event; deadlines must always be met, regardless of system load . A real-time system has been described as one which "controls an environment by receiving data, processing them, and returning the results sufficiently quickly to affect the environment at that time". The term "real-time" is used in process control and enterprise systems to mean "without significant delay". Real-time software may use one or more of
832-399: A strong foothold in that market and providing both educated customer input for future models and a source of bright young future employees to assist in the hardware and software development for those future models. The sales were so slow that DEC eventually decided to abandon the system and announced that they would not build any more 36-bit machines. Fortunately, this decision was reversed and
884-464: A sufficient limit to throughput delay so as to be tolerable to performers using stage monitors or in-ear monitors and not noticeable as lip sync error by the audience also directly watching the performers. Tolerable limits to latency for live, real-time processing is a subject of investigation and debate but is estimated to be between 6 and 20 milliseconds. Real-time bidirectional telecommunications delays of less than 300 ms ("round trip" or twice
936-400: A task: namely a bound or worst-case estimate for how long the task must execute. Specific algorithms for scheduling such hard real-time tasks exist, such as earliest deadline first , which, ignoring the overhead of context switching , is sufficient for system loads of less than 100%. New overlay scheduling systems, such as an adaptive partition scheduler assist in managing large systems with
988-403: Is real-time. The grocer might go out of business or must at least lose business if they cannot make their checkout process real-time; thus, it is fundamentally important that this process is real-time. A signal processing algorithm that cannot keep up with the flow of input data with output falling farther and farther behind the input, is not real-time. But if the delay of the output (relative to
1040-435: Is also used in simulation to mean that the simulation's clock runs at the same speed as a real clock. Real-time responses are often understood to be in the order of milliseconds, and sometimes microseconds. A system not specified as operating in real time cannot usually guarantee a response within any timeframe, although typical or expected response times may be given. Real-time processing fails if not completed within
1092-451: Is assumed not to be necessary. High-performance is indicative of the amount of processing that is performed in a given amount of time, whereas real-time is the ability to get done with the processing to yield a useful output in the available time. The term "near real-time" or "nearly real-time" (NRT), in telecommunications and computing , refers to the time delay introduced, by automated data processing or network transmission, between
SECTION 20
#17327733966531144-431: Is imperative that an event be reacted to within a strict deadline. Such strong guarantees are required of systems for which not reacting in a certain interval of time would cause great loss in some manner, especially damaging the surroundings physically or threatening human lives (although the strict definition is simply that missing the deadline constitutes failure of the system). Some examples of hard real-time systems: In
1196-436: Is no greater than the sampling period, which is the reciprocal of the sampling rate . This is the criterion whether the samples are grouped together in large segments and processed as blocks or are processed individually and whether there are long, short, or non-existent input and output buffers . Consider an audio DSP example; if a process requires 2.01 seconds to analyze , synthesize , or process 2.00 seconds of sound, it
1248-460: Is not real-time. However, if it takes 1.99 seconds, it is or can be made into a real-time DSP process. A common life analogy is standing in a line or queue waiting for the checkout in a grocery store. If the line asymptotically grows longer and longer without bound, the checkout process is not real-time. If the length of the line is bounded, customers are being "processed" and output as rapidly, on average, as they are being inputted then that process
1300-404: Is one in which real-time control offers genuine advantages in terms of process performance and safety. A system is said to be real-time if the total correctness of an operation depends not only upon its logical correctness, but also upon the time in which it is performed. Real-time systems, as well as their deadlines, are classified by the consequence of missing a deadline: Thus, the goal of
1352-733: The UNIVAC 418 and several military systems. The IBM 7700 Data Acquisition System was announced by IBM on December 2, 1963. The BCL Molecular 18 was a group of systems designed and manufactured in the UK in the 1970s and 1980s. The NASA Standard Spacecraft Computer NSSC-1 was developed as a standard component for the MultiMission Modular Spacecraft at the Goddard Space Flight Center (GSFC) in 1974. The flying-spot store digital memory in
1404-440: The character codes of the era were 6 bits long and it was also a useful size for storing binary-coded decimal digits with an optional sign, as commonly used on IBM machines of the era. Large machines generally used a 36-bit word length , but there were many variations. The PDP-1's 18-bit length allowed the machine to be simpler and less expensive than these, at US$ 120,000 (equivalent to $ 1,254,247 in 2023). Proposals for
1456-456: The core memory . The PDP-6 weighed about 1,300 pounds (590 kg), 1,700 pounds (770 kg) with "Fast Memory". The PDP-6 was infamous because of the 6205 board, a large (11 × 9 inches) board which contained 1 bit of arithmetic register (AR), memory buffer (MB), and multiplier-quotient register (MQ). The CPU was built from 36 such cards. It had 88 transistors, a two-sided PC etch, two 18-pin and two 22-pin connectors (two on each side of
1508-609: The CPU completely and use its own scheduler , without using native machine language and thus bypassing all interrupting Windows code. However, several coding libraries exist which offer real time capabilities in a high level language on a variety of operating systems, for example Java Real Time . Later microprocessors such as the Motorola 68000 and subsequent family members (68010, 68020, ColdFire etc.) also became popular with manufacturers of industrial control systems. This application area
1560-714: The Stanford PDP-6 was part of that donation. There is no evidence that the modules sold at the Boston computer museum gift shop were from the Stanford PDP-6, nor is there any evidence that the museum had ever had this machine in its possession. Real-time computing Real-time computing ( RTC ) is the computer science term for hardware and software systems subject to a "real-time constraint", for example from event to system response . Real-time programs must guarantee response within specified time constraints, often referred to as "deadlines". The term "real-time"
1612-435: The context of multitasking systems the scheduling policy is normally priority driven ( pre-emptive schedulers). In some situations, these can guarantee hard real-time performance (for instance if the set of tasks and their priorities is known in advance). There are other hard real-time schedulers such as rate-monotonic which is not common in general-purpose systems, as it requires additional information in order to schedule
PDP-6 - Misplaced Pages Continue
1664-401: The faster an unconstrained chess program runs, the sooner it will be able to move. This example also illustrates the essential difference between real-time computations and other computations: if the tournament chess program does not make a decision about its next move in its allotted time it loses the game—i.e., it fails as a real-time computation—while in the other scenario, meeting the deadline
1716-415: The first experimental electronic switching systems used nine plates of optical memory that were read and written two bits at a time, producing a word size of 18 bits. Eighteen-bit machines use a variety of character encodings. The DEC Radix-50 , called Radix 50 8 format, packs three characters plus two bits in each 18-bit word. The Teletype packs three characters in each 18-bit word; each character
1768-496: The following: synchronous programming languages , real-time operating systems (RTOSes), and real-time networks, each of which provide essential frameworks on which to build a real-time software application. Systems used for many safety-critical applications must be real-time, such as for control of fly-by-wire aircraft, or anti-lock brakes , both of which demand immediate and accurate mechanical response. The term real-time derives from its use in early simulation , in which
1820-551: The foreground to threads/tasks with the highest priority. Real-time operating systems would also be used for time-sharing multiuser duties. For example, Data General Business Basic could run in the foreground or background of RDOS and would introduce additional elements to the scheduling algorithm to make it more appropriate for people interacting via dumb terminals . Early personal computers were sometimes used for real-time computing. The possibility of deactivating other interrupts allowed for hard-coded loops with defined timing, and
1872-405: The hardware and software for an anti-lock braking system have been designed to meet its required deadlines, no further performance gains are obligatory or even useful. Furthermore, if a network server is highly loaded with network traffic, its response time may be slower but will (in most cases) still succeed before it times out (hits its deadline). Hence, such a network server would not be considered
1924-411: The input) is bounded regarding a process that operates over an unlimited time, then that signal processing algorithm is real-time, even if the throughput delay may be very long. Real-time signal processing is necessary, but not sufficient in and of itself, for live signal processing such as what is required in live event support . Live audio digital signal processing requires both real-time operation and
1976-420: The instruction to. The last 18 bits indicated an address. Thus, a typical instruction might be "add the value in memory location 1234 to the value in register 4". Thus the format contains one-and-a-half addresses, the half being the register. This left another five bits in the instruction word, bits 13 through 17. Bit 13 indicated the address was indirect; instead of the value stored in address 1234 being added to
2028-524: The low interrupt latency allowed the implementation of a real-time operating system, giving the user interface and the disk drives lower priority than the real-time thread. Compared to these the programmable interrupt controller of the Intel CPUs (8086..80586) generates a very large latency and the Windows operating system is neither a real-time operating system nor does it allow a program to take over
2080-486: The module). Because of all these connectors, swapping this module was a major undertaking, and the mechanical coupling made it highly likely that fixing one fault would cause another. There was also a great fear of powering off a PDP-6, since it would generally result in at least one 6205 board failing. The experience with the 6205 led the designers of the first models of PDP-10, the KA10 and KI10, to use only small boards. It
2132-458: The need for low-latency priority-driven responses to important interactions with incoming data and so operating systems such as Data General 's RDOS (Real-Time Disk Operating System) and RTOS with background and foreground scheduling as well as Digital Equipment Corporation 's RT-11 date from this era. Background-foreground scheduling allowed low priority tasks CPU time when no foreground task needed to execute, and gave absolute priority within
PDP-6 - Misplaced Pages Continue
2184-399: The occurrence of an event and the use of the processed data, such as for display or feedback and control purposes. For example, a near-real-time display depicts an event or situation as it existed at the current time minus the processing time, as nearly the time of the live event. The distinction between the terms "near real time" and "real time" is somewhat nebulous and must be defined for
2236-936: The other database can import/export on a scheduled basis so that they can sync/share common data in "near real-time" with each other. Several methods exist to aid the design of real-time systems, an example of which is MASCOT , an old but very successful method which represents the concurrent structure of the system. Other examples are HOOD , Real-Time UML, AADL , the Ravenscar profile , and Real-Time Java . 18-bit In computer architecture , 18-bit integers , memory addresses , or other data units are those that are 18 bits (2.25 octets ) wide. Also, 18-bit central processing unit (CPU) and arithmetic logic unit (ALU) architectures are those that are based on registers , address buses , or data buses of that size. Eighteen binary digits have 262,144 (1000000 octal , 40000 hexadecimal ) distinct combinations. Eighteen bits
2288-428: The selected register, the value in 1234 was interpreted as another address, the value in that location used. For instance, if the value in 1234 is 2345, the resulting instruction would add the value in 2345 to register 4. This sort of access pattern was common as it allowed tables to be scanned over using a single instruction and then changing the value in memory to point to another location. The remaining four bits offered
2340-462: The situation at hand. The term implies that there are no significant delays. In many cases, processing described as "real-time" would be more accurately described as "near real-time". Near real-time also refers to delayed real-time transmission of voice and video. It allows playing video images, in approximately real-time, without having to wait for an entire large video file to download. Incompatible databases can export/import to common flat files that
2392-466: The time from companies like IBM , Honeywell and General Electric . Unlike those machines, the PDP-6 was supplied with a timesharing system "out of the box". Timesharing had been available for other machines, most famously the PDP-1 at Project MAC, but the PDP-6 was the first such system to be supported by the manufacturer. Worldwide, only 23 PDP-6's were sold, the smallest number of any DEC machine. It
2444-404: The unidirectional delay) are considered "acceptable" to avoid undesired "talk-over" in conversation. Real-time computing is sometimes misunderstood to be high-performance computing , but this is not an accurate classification. For example, a massive supercomputer executing a scientific simulation may offer impressive performance, yet it is not executing a real-time computation. Conversely, once
2496-614: Was a common word size for smaller computers in the 1960s, when large computers often using 36 bit words and 6-bit character sets , sometimes implemented as extensions of BCD , were the norm. There were also 18-bit teletypes experimented with in the 1940s. Possibly the most well-known 18-bit computer architectures are the PDP-1 , PDP-4 , PDP-7 , PDP-9 and PDP-15 minicomputers produced by Digital Equipment Corporation from 1960 to 1975. Digital's PDP-10 used 36-bit words but had 18-bit addresses. The UNIVAC division of Remington Rand produced several 18-bit computers, including
2548-564: Was added on the PDP-10). The main operating system used on the machine was an early version of what later became TOPS-10 , and several sites made custom versions of the system, which was available in source code form. MIT's Incompatible Timesharing System (ITS) operating system also began on the PDP-6. Although it was possible to time-share a PDP-6 without a disk drive, configuring it with four dual DECtape drives "could effectively support about 4-6 simultaneous users." The same system, with
2600-505: Was complex and expensive to build, as well as difficult to install and get operational at the customer's site. Additionally, the sales force found the PDP-6 to be a "hard sell". Nevertheless, the company later considered the PDP-6 to be a success: Because the PDP-6 was the first computer to offer elegant, powerful capabilities at a low price, a great many of the PDP-6s built found their way into university and scientific environments, giving DEC
2652-407: Was far more successful and eventually sold about 1,500 machines. Addressing remained 18-bit , as in earlier DEC machines, allowing for a 256 kword main memory , about 1 MB in modern terms. Memory was implemented using magnetic cores ; a typical system included 32,768 words (equivalent to 144 kB on modern machines). The use of a 36-bit word allowed two 18-bit addresses to be stored in
SECTION 50
#17327733966532704-518: Was not until the KL10 that large boards were used again. The PDP-6 supported time-sharing through the use of a status bit selecting between two operating modes ("Executive" and "User", with access to input/output (I/O), etc., being restricted in the latter), and a single relocation/protection register which allowed a user's address space to be limited to a set section of main memory (a second relocation/protection register for shareable "high segments"
#652347