10 предшественников персонального компьютера
Что общего у компьютера и ткацкого станка, какая компьютерная разработка обошлась дороже создания ядерного оружия и сколько комнат в “хрущевке” займет первая советская ЭВМ.
Информация о первой в мире вычислительной машине дошла до нашего времени случайно — ее обнародовал в 1957 году директор Кеплеровского научного центра Франц Гаммер. Работая в штутгардской библиотеке, Гаммер обнаружил копию эскиза некоего счетного устройства. Дальнейшие исследования показали, что эскиз принадлежит математику и астроному Вильгельму Шиккарду (1592 — 1635). Нашлось также письмо Шиккарда легендарному астроному Иоганну Кеплеру, в котором он подробно описывал строение устройства и ссылался на этот чертеж.
Машина Шиккарда, чье устройство основано на зубчатом механизме, могла автоматически выполнять четыре математических действия над шестиразрядными числами. При жизни ученого было изготовлено два экземпляра машины, один из которых предназначался Кеплеру. Однако в 1624 году обе машины сгорели во время пожара. Восстановить копию машины по эскизам Шиккарда удалось лишь в 60-х годы XX века.
Резюме
Размер его слова составлял 12 бит , так как он в первую очередь предназначался для лабораторных приборов (путем интеграции OEM ), и эти 12 бит соответствовали максимальному разрешению датчиков, доступных в то время. При высокой стоимости памяти этот выбор представлял собой экономический оптимум, поскольку ни телекоммуникации, ни обработка текстов не требовали байта. Это не будет использоваться в DEC намного позже, с PDP-11 .
Его стандартная память состояла из 4096 12-битных слов (максимально адресуемых этими 12 битами) с временем цикла 1,5 мкс. Расширение памяти позволило увеличить память до восьми страниц по 4096 12-битных слов с помощью страничного регистра. Это была память с ферритовыми сердечниками , сохраняющая данные во время сбоя питания.
Он использовал в качестве телетайпа пупитражный блок ASR-33 (в) и состоял из жесткого диска с фиксированными дополнениями лент adressantes DECtapes . Тем не менее, можно было загружать его программами, используя считыватель перфорированной ленты (бумажный) ASR33 .
Он был запрограммирован, помимо ассемблера , либо на языке, специфичном для DEC, FOCAL , либо на Фортране (чей компилятор был на 4 КБ!). Был доступен интерпретатор BASIC, операционная система под названием OS-8 позволяла управлять различной периферией (жесткими дисками, 8-дюймовыми дискетами и т. Д.)
Description
The PDP-8 used ideas from several 12-bit predecessors, most notably the LINC designed by W.A. Clark and C.E. Molnar who were inspired by Seymour Cray’s CDC 160 minicomputer. [ 3 ]
The architecture had a simple programmed I/O bus, plus a DMA channel. The programmed I/O bus would typically run low to medium-speed peripherals, such as printers, teletypes, paper tape punches and readers, while DMA was used for cathode ray tube screens with a light pen, analog-to-digital converters, digital-to-analog converters, tape drives, disk drives.
The word size, 12 bits, is large enough to handle unsigned integers from 0 to 4095 – wide enough for controlling simple machinery. This is also enough to handle signed numbers from -2048 to +2047. This is higher precision than a slide rule or most analog computers. Twelve bits could also store two six-bit ASCII subset characters.
To save money, the design uses inexpensive main memory for many purposes that are served by more expensive flip-flop registers in other computers. [ 4 ]
The PDP-8’s basic configuration had a main memory of 4,096 twelve-bit words. An optional memory-expansion unit could switch banks of such memories using the IOT instruction.
At its inception, the programmer’s view of the PDP-8 had only eight instructions and two registers (a 12-bit accumulator, AC, and a carry bit called the «link register», L). The machine used magnetic core memory with a cycle time of 1.5 microseconds, so that a typical two-cycle (Fetch, Execute) memory-reference instruction ran at a speed of 0.333 MIPS. The 1974 Pocket Reference Card gave a basic instruction time of 1.2 microseconds, or 2.6 microseconds for instructions that referenced memory. Later machines added a second register (the Multiplier/Quotient Register, MQ). An extended arithmetic element option added actual multiply and divide instructions.
The PDP-8 was optimized for simplicity of design. The CPU of the serial model, the PDP-8/S, had only about 519 logic gates, while small microcontrollers (as of 2008) usually have 15,000 or more. Compared to more complex machines, unnecessary features were removed, and logic was shared when possible. Instructions used autoincrement, autoclear and indirect access to increase the software’s speed, reduce memory use and substitute inexpensive memory for expensive registers. A basic PDP-8 CPU has only four 12-bit registers, the accumulator, program counter, memory-buffer register and memory-address register. To save money, these were all used for multiple purposes at different points in the operating cycle. For example, the memory buffer register provided arithmetic operands, was part of the instruction register, and stored data to rewrite the core memory. (This restores the core data destroyed by the read.) In spite of its basic simplicity, the use of very small modules made it an expensive machine, with a large part of the cost sunk into the small modules, the thousands of gold-plated connectors, and the complex wire-wrapped backplane. In the 8/S two different logic voltages were used, an inexpensive way to increase the fan-out of the inexpensive diode-transistor logic. [ 5 ]
36-разрядные PDP
Появившаяся в 60-е годы идея разделения ресурсов большого компьютера между десятками или даже сотнями пользователей оказалась очень продуктивной и привлекательной. Она позволила сделать первые серьезные шаги для обеспечения интерактивного взаимодействия человека с компьютером и в некотором смысле стала полигоном, на котором отрабатывались будущие сетевые технологии. Шагая в этом направлении, DEC в 1964 году создала первую большую 36-разрядную машину PDP-6, оснащенную поддерживавшим этот режим программным обеспечением Tops 10. В последующем на ее базе были созданы машины PDP-10 (1969 год), DECsystem-10 (1971), DECsystem-20 (1976) и последняя в этом ряду DECsystem-2020 (1978). Начиная с PDP-10 использовался язык команд, на основе которого были сделаны соответствующие языки операционных систем CP/M и DOS. Насколько известно, в Россию такие машины не поступали.
36-разрядные машины на уровне электроники 70-х не могли стать массовыми (они были слишком дорогими, поскольку очень дорого стоили компоненты, особенно ферритовая память), а 12 разрядов были слишком сильным ограничением, ведь 4 Kбайт для адресного пространства — явно маловато. Паллиативом стало число 16. Работа над новым проектом (его первоначальное название — PDP-X) началась примерно в 1967 году, руководил проектом Эдисон ДеКастро. Он был прежде техническим руководителем направления PDP-8, поэтому неудивительно, что проект PDP-X развивался эволюционно от PDP-8. В нем был увеличен на четыре разряда адрес, появились регистры общего назначения. Проект не был завершен, группа авторов PDP-X ушла из DEC. Они создали собственную компанию Data General, где стали выпускать компьютер NOVA, не являющийся прямым наследником PDP-X. (Но NOVA не отличался оригинальностью архитектуры, скорее это было удачное и компактное инженерное решение.)
С уходом ДеКастро и его сподвижников оставшимся в DEC пришлось начинать с чистого листа, что в конечном счете пошло на пользу. Благодаря такому развороту событий оказались привнесены основополагающие идеи, обеспечившие PDP-11 уникальные свойства. История второго по счету 16-разрядного проекта такова. После своего первого «развода» с DEC в 1967 году Гордон Белл перешел в университет Карнеги-Меллон, но при этом не терял интереса к делам компании и занимался эскизной проработкой собственной архитектуры 16-разрядной машины. Так вот, когда проект PDP-Х потерпел крах, именно Белл смог предложить альтернативное решение, которое не без труда было принято — слишком много в нем было необычного, прежде всего 18-разрядная внутренняя шина UNIBUS, набор регистров и система адресации. Предложенная для PDP шинная архитектура надолго стала доминирующей и в персональных компьютерах, и в серверах. Только в середине 90-х годов в серверах, а затем в станциях старшего класса появились высокоскоростные коммутаторы, пришедшие на смену шинам. К UNIBUS на равных подключались процессор, память, периферийные устройства. Они имели свои адреса и номера прерываний, что делало достаточно несложной процедуру управления. Шинная архитектура позволила третьим компаниям быстро наладить выпуск стандартной периферии. Они могли сопровождать свои изделия загружаемым драйвером, благодаря чему к шине и драйверу удавалось подключать стандартным способом разнообразные устройства. В последующем появились вариации — более дешевая шина Q-BUS и 22-разрядное расширение MASSBUS, которое позволяло адресоваться к памяти до 4 Мбайт.
Коллектив разработчиков PDP-11 возглавил Гарольд Макфарланд, ученик и протеже Гордона Белла. Именно его можно считать главным архитектором PDP-11. Он стал проводником взглядов Белла, и их правоту ему пришлось доказывать в нелегких спорах с инженерами, мыслившими более инерционно.
Первой моделью, отцом семейства, стал компьютер PDP 11/20. Он и все последующие представлены на генеалогическом дереве, составленном венгерским специалистом Варгой Якошем. Всего по разным оценкам было выпущено от 16 до 22 разных моделей. Измерить выпуск в штуках сложно, но, по всей видимости, это сотни тысяч. Например, известно, что количество выпущенных 11/70, самой крупной по физическим параметрам машины (две стойки, процессор и память, стойки с лентами, огромные по габаритам диски), превышает 10 тыс. В одной Москве можно было насчитать десятки только PDP-11/70.
В апреле 1975 года Белл вернулся в DEC. На этот раз он возглавил группу разработчиков, названную позже VAX A и состоявшую поначалу всего из шести человек. Прежде всего, следовало решить принципиальный вопрос: с чего начать проектирование следующей по мощности машины — отбросить прошлое и создавать перспективный компьютер «с чистого листа», либо использовать сделанные ранее наработки. Победило второе мнение, поэтому проект получил символическое имя VAX-11. Название Virtual Address eXtension («виртуальное расширение адреса») указывало на преодоление самого существенного ограничения PDP, а число 11 отражало связь с PDP-11. Позже та же методика, позволяющая сохранить лучшее, была использована Дэйвом Кэтлером, одним из членов VAX A. Перейдя в последующем в Microsoft, он аналогичным образом организовал разработку Windows NT. (Вот еще один пример связанности всей ИТ-индустрии — казалось бы, ну что общего между VAX и современными версиями Windows, а на поверку, оказывается, есть общие корни.)
Следующим по важности был вопрос, по какому пути следует идти при проектировании процессора. По апробированному пути CISC или по едва нарождавшемуся — к RISC? Спустя десять лет это вопрос прозвучал иначе, и ответ на него был более очевиден, а на тот момент понятное прогрессивное решение сдерживалось экономическими соображениями. Реализация RISC-архитектуры потребовала бы больших аппаратных ресурсов, а именно: более развитого набора регистров общего назначения, быстрой кэш-памяти, и вдобавок она была менее эффективна с точки зрения использования оперативной памяти. Поэтому остановились на CISC и микропрограммировании.
Беллу удалось создать условия свободы творчества для команды VAX A и построить работу таким образом, чтобы полностью устранить влияние администрации и менеджеров по маркетингу на работу группы (в ней участвовали только инженеры). Даже, будучи переименована в группу VAX B, она разрослась до 25 членов, бригада проектировщиков оставалась образованием творческим. Менее чем за два года была изготовлена бета-версия VAX. Первые испытания показали, что машина получилась на редкость удачной, может быть, даже слишком удачной, что в конечном итоге привело к возникновению определенной эйфории у руководства компании и нежелание в дальнейшем видеть альтернативные пути.
Так получилось, что, объективно сделав больше всех других компаний для появления персонального компьютера, DEC упустила свой шанс. Все ее творческие силы были сосредоточены на развитии семейств PDP-11 и VAX, а что касается ПК, почившее на лаврах руководство не пожелало считаться с альтернативными мнениями. Оно уверовало в собственный проект Rainbow. В итоге снова создалась конфликтная ситуация, и в 1983 году Белл вторично, — и на этот раз окончательно и бесповоротно, — ушел из DEC. Компания лишилась выдающегося стратега.
Но и без него семейство VAX продолжало развитие. За 15 лет сменилось четыре поколения компьютеров, семейство охватило диапазон от рабочих станций до мэйнфреймов.
Содержание
Программисты полюбили PDP-11 за её «ортогональную» систему команд: можно было отдельно запоминать команды, и отдельно — методы доступа к операндам. Можно было считать, что любой метод доступа (режим адресации) будет работать с любой операцией; не нужно было запоминать список исключений и особых случаев, в которых операция имеет ограниченный набор режимов адресации, все регистры ( R0 … R7 ) могли использоваться с любой командой. Регистры R0 … R4 были универсальными, а регистры R5 ( FP , указатель кадра, англ. frame pointer ), R6 ( SP , указатель стека, англ. stack pointer ) и R7 ( PC , счётчик команд, англ. program counter ) — были специальными, для нескольких команд были исключения, но все эти регистры могли использоваться как операнды в арифметико-логических операциях или использоваться при формировании адресов операндов.
В некотором смысле набор режимов адресации образовывал «базис», а набор операций — другой базис. Каждая двухоперандная инструкция состояла из двух 6-битных идентификаторов операндов (каждый из них содержал три бита на номер регистра и три бита на режим адресации), а также из 4-битного а операции; однооперандная инструкция содержала один 6-битный идентификатор операнда и 10-битный операции. Благодаря логичной и структурированной системе команд ы достаточно легко читаемы в машинном е непосредственно в восьмеричном представлении, например, формат двухоперандных команд:
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
B | Opcode | Mode | R Src | Mode | R Dst |
Где бит B — признак того, что операция над байтом или над словом
B Opcode | Мнемоника | Эффект |
---|---|---|
0 1 | MOV | Пересылка: dest = src |
1 1 | MOVB | |
0 2 | CMP | Сравнение: вычислить src − dest без записи результата |
1 2 | CMPB | |
0 3 | BIT | Проверить биты: вычислить dest & src без записи результата |
1 3 | BITB | |
0 4 | BIC | Сброс битов, либо «логическое И с инверсией src»: dest &= ~src |
1 4 | BICB | |
0 5 | BIS | Установка битов, либо «логическое ИЛИ»: dest |= src |
1 5 | BISB | |
0 6 | ADD | Сложение, dest += src |
1 6 | SUB | Вычитание, dest −= src |
Mode указывает режим использования регистра (непосредственно значение регистра / регистр содержит адрес / адрес с поставтоинкрементом и т. д.)
Таким образом, команда 0101038 читается как «скопировать R1 в R3 ».
Programming facilities
Early PDP-8 systems did not have an operating system, just a front panel and run and halt switches. Software development systems for the PDP-8 series began with the most basic front panel entry of raw binary machine code (booting entry).
In the middle era, various paper tape «operating systems» were developed. Many utility programs became available on paper tape. PAL-8 assembly language source code was often stored on paper tape, read into memory, and saved to paper tape. PAL assembled from paper tape into memory. Paper tape versions of a number of programming languages were available, including DEC’s FOCAL interpreter and a 4K FORTRAN compiler and runtime.
Toward the end of the PDP-8 era, operating systems such as OS/8 and COS-310 allowed a traditional line mode editor and command-line compiler development system using languages such as PAL-III assembly language, FORTRAN, BASIC, and DIBOL.
Fairly modern and advanced real-time operating system (RTOS) and preemptive multitasking multi-user systems were available: a real-time system (RTS-8) was available as were multiuser commercial systems (COS-300 and COS-310) and a dedicated single-user word-processing system (WPS-8).
A time-sharing system, TSS-8, was also available. TSS-8 allowed multiple users to log into the system via 110-baud terminals, and edit, compile and debug programs. Languages included a special version of BASIC, a FORTRAN subset similar to FORTRAN-1 (no user-written subroutines or functions), an ALGOL subset, FOCAL, and an assembler called PAL-D.
A fair amount of user-donated software for the PDP-8 was available from DECUS, the Digital Equipment Corporation User Society, and often came with full source listings and documentation.
Средства программирования [ править ]
Ранние системы PDP-8 не имели операционной системы, только переднюю панель с переключателями запуска и остановки. Системы разработки программного обеспечения для серии PDP-8 начинались с самого простого ввода на передней панели исходного двоичного машинного кода ( загрузочного ввода).
В средние века были разработаны различные «операционные системы» с бумажной лентой. Многие служебные программы стали доступны на бумажной ленте. Исходный код языка ассемблера PAL-8 часто сохранялся на бумажной ленте, считывался в память и сохранялся на бумажной ленте. PAL собран из бумажной ленты в память. Были доступны бумажные ленточные версии ряда языков программирования, включая интерпретатор DEC FOCAL [34], а также компилятор и среду исполнения FORTRAN 4K .
К концу эры PDP-8 операционные системы, такие как OS / 8 и COS-310, позволяли использовать традиционный редактор в строчном режиме и систему разработки компилятора командной строки с использованием таких языков, как язык ассемблера PAL-III, FORTRAN, BASIC и DIBOL. .
Были доступны довольно современная и продвинутая операционная система реального времени (RTOS) и многопользовательские системы с вытесняющей многозадачностью : была доступна система реального времени (RTS-8), а также многопользовательские коммерческие системы (COS-300 и COS-310) и специализированная однопользовательская система обработки текстов (WPS-8).
Также была доступна система разделения времени TSS-8 . TSS-8 позволяет нескольким пользователям входить в систему через терминалы со скоростью 110 бод, а также редактировать, компилировать и отлаживать программы. Языки включают специальную версию BASIC, подмножество FORTRAN, подобное FORTRAN-1 (без написанных пользователем подпрограмм или функций), подмножество ALGOL , FOCAL и ассемблер под названием PAL-D.
Изрядное количество пожертвованного пользователями программного обеспечения для PDP-8 было доступно от DECUS , Общества пользователей Digital Equipment Corporation, и часто поставлялось с полными списками источников и документацией.
Running Adventure
To run Adventure we first need to run the FORTRAN environment. Start it up with the following command R FRTS :
Your prompt changes to a * . The HELP command explains what the R command does:
Tell the FORTRAN system we want to load Adventure with the following command, ADVENT.LD :
Press the ESCAPE key on your keyboard to start the execution. Below you’ll find the full sequence of commands plus some ADVENTURE output:
To exit SIMH and the PDP-8, press CTRL+E . SIMH will stop and you will be back at your command prompt.
You can view some more help on the PDP-8 SIMH version by executing (in OS/8) the following command: