Кіріспе
Вакуумдық түтікшелі компьютерлік жүйе
IBM 704 – IBM компаниясы 1954 жылы ұсынған ірі цифрлық мейнфреймдік компьютердің үлгісі. Бұл жылжымалы нүктелі арифметикаға арналған аппараттық құралдары бар алғашқы сериялық өндірістік компьютер болды. IBM 704 пайдалану нұсқаулығында былай делінген: 704 типті электрондық деректерді өңдеу машинасы – бұл бір адрес түріндегі ішкі сақталған бағдарламамен басқарылатын үлкен ауқымды, жоғары жылдамдықты электрондық калькулятор. Сол кезде 704-ші «күрделі математикалық есептерді шеше алатын дерлік жалғыз компьютер» деп есептелді. 704 архитектурасы мен іске асыруы жағынан бұрынғы IBM 701-ге қарағанда айтарлықтай жақсартылған. 701-ге ұқсас, 704 вакуумдық түтікшелі логикалық схеманы қолданды, бірақ нұсқаудың мөлшерін 18 биттен 36 битке дейін ұлғайтты, бұл жадтың сөз мөлшерімен сәйкес келеді. 701-ден жасалған өзгерістерге Уильямс түтікшелерінің орнына магниттік өзекті жадты пайдалану, жылжымалы нүктелі арифметикалық нұсқаулар, 15 биттік адрестеу және үш индекс тіркегішін қосу кіреді. Осы жаңа мүмкіндіктерді қолдау үшін нұсқаулар толық 36 биттік сөзді пайдалануға дейін кеңейтілді. 701-ге үйлесімсіз жаңа нұсқаулар жиынтығы IBM 700/7000 сериялы компьютерлерінің «ғылыми архитектура» кіші класының негізін құрады. 704 секундына 12 000-ға дейін жылжымалы нүктелі қосылу операциясын орындай алатын.
The type 704 Electronic Data Processing Machine is a large scale, high speed electronic calculator controlled by an internally stored program of the single address type. The 704 at that time was thus regarded as "pretty much the only computer that could handle complex math". The 704 was a significant improvement over the earlier IBM 701 in terms of architecture and implementation. Like the 701, the 704 used vacuum tube logic circuitry, but increased the instruction size from 18 bits to 36 bits, the same as the memory's word size. Changes from the 701 include the use of magnetic core memory instead of Williams tubes, floating point arithmetic instructions, 15 bit addressing and the addition of three index registers. To support these new features, the instructions were expanded to use the full 36 bit word. The new instruction set, which is not compatible with the 701, became the base for the "scientific architecture" subclass of the IBM 700/7000 series computers. The 704 could execute up to 12,000 floating point additions per second.
Көрнекті орындар
FORTRAN және LISP бағдарламалау тілдері 704 үшін алғаш рет әзірленді, сондай-ақ SAP құрастырғышы — Symbolic Assembly Program, кейіннен SHARE ұйымы SHARE Assembly Program ретінде таратты. МУЗЫКА, алғашқы компьютерлік музыка бағдарламасы, Макс Мэтьюс IBM 704 компьютерінде жасалды. 1962 жылы физик Джон Ларри Келли, IBM 704 компьютерін пайдаланып сөйлеуді синтездеу арқылы Bell Labs тарихындағы ең әйгілі сәттердің бірін жасады. Келлидің дауыс жазушы синтезаторлық вокодері Макс Мэтьюстің музыкалық сүйемелдеуімен «Daisy Bell» әнін қайта жаңғыртты. Артур Кларк осы сөйлеу синтезінің көрсетілімі кезінде Bell Labs Murray Hill ғимаратындағы досы және әріптесі Джон Пирске кездейсоқ соғып келді. Кларк оған соншалықты әсерленді, алты жылдан кейін оны өзінің «2001: Ғарыш саяхаты» романы мен сценарийінің кульминациялық сахнасында пайдаланды, онда HAL 9000 компьютері сол әнді орындайды. (Соңынан Bell Laboratories осылай жасалған сөйлеу мен музыканың он дюймдік 78 RPM пластинкаларын шығарды. Ол, көрінеу, 704-тің жартылай өткішгіш элементтерге негізделген ізбасары IBM 7090-бен жасалған.) MIT-тегі математика оқытушысы Эдвард О. Торп, өзінің блэкджек ойынының теориясын әзірлеу кезінде жеңіске жету мүмкіндігін зерттеу үшін IBM 704-ті зерттеу құралы ретінде пайдаланды. Ол FORTRAN-ды өзінің зерттеу моделінің теңдеуларын құрастыру үшін қолданды. MIT Есептеу орталығындағы IBM 704 1957 жылдың күзінде Смитсониялық астрофизикалық обсерваторияның «Operation Moonwatch» бағдарламасы үшін ресми бақылаушы ретінде пайдаланылды. IBM төрт ғылыми қызметкерді Смитсониялық астрофизикалық обсерватория ғалымдары мен математиктеріне спутниктердің орбиталарын есептеуге көмектесу үшін жіберді: доктор Джанпиеро Россони, доктор Джон Гринштадт, Томас Эппл және Ричард Хатч. IBM 704 NRL Vanguard зымыраларының ұшу динамикасын талдау үшін қолданылды. Лос-Аламос ғылыми зертханасы (LASL) пакеттік өңдеуді іске асыру үшін SLAM деп аталатын алғашқы мониторды жасады.
Тіркелімдер
IBM 704 38 биттік аккумулятор, 36 биттік көбейтуші/бөлу регистрі және үш 15 биттік индекстік регистрге ие болды. Индекстік регистрлердің мәні базалық адрестен кешіріледі, сондықтан индекстік регистрлер "кеміту регистрлері" деп те аталады. Үш индекстік регистрдің барлығы бір нұсқауға қатыса алады: нұсқаудағы 3 биттік таңбалау өрісі операцияға қай регистрлердің қатысатынын көрсететін биттік карта болып табылады. Бірақ, егер бірден көп индекстік регистр таңдалса, олардың мәні біттейін біріктіріледі – емес, қосылмайды – және содан кейін кешіріледі. Бұл қасиет IBM 7094 дейін кешірек ғылыми архитектуралы машиналарда (мысалы, IBM 709 және IBM 7090) сақталды. 1962 жылы ұсынылған IBM 7094 индекстік регистрлер санын жетіге дейін арттырды және бір уақытта тек біреуін таңдауға мүмкіндік берді; "немесе" қасиеті IBM 7094-тің үйлесімділік режимінде қолдануға болатын болды.
Нұсқаулар мен деректер пішімдері
Бар екі нұсқама форматы бар, олар "А типі" және "Б типі" деп аталады. Көптеген нұсқамалар Б типі болды. А типіндегі нұсқамалар тізбек бойынша 3 биттік префикстен (нұсқау коды), 15 биттік кему өрісінен, 3 биттік таг өрісінен және 15 биттік мекенжай өрісінен тұрады. Таг өрісінде көрсетілген индекс тіркелгіштеріндегі мәндерге негізделген шартты секіру операциялары бар. Кейбір нұсқамалар индекс тіркелгіштерінің мазмұнынан кему өрісін де азайтады. Іске асыру үшін нұсқау кодынң екінші екі биті нөлден өзгеше болуы керек, яғни А типіндегі алты мүмкін нұсқама бар. Олардың бірі (STR, нұсқау коды екілік 101) IBM 709 дейін іске асырылмады. Б типіндегі нұсқамалар тізбек бойынша 12 биттік нұсқау кодын (оларды А типіндегі нұсқамалардан ажырату үшін 2 және 3 биттері 0-ге орнатылған), 2 биттік флаг өрісін, пайдаланылмаған төрт битті, 3 биттік таг өрісін және 15 биттік мекенжай өрісін қамтиды. Қатты нүктелі сандар екілік таңба/мөлшер форматында сақталады. Бір дәлдікті қозғалмалы нүктелі сандар шама белгісін, 8 биттік 128-ге артық экспонентасын және 27 биттік бөлшекті (жасырын бит жоқ) қамтиды. Әріп-сандық таңбалар әдетте 6 биттік BCD форматында, бір сөзге 6 таңбадан жиналған. Нұсқамалар жиынтығы дерек форматын А типіндегі нұсқамалар сияқты бірдей өрістерге бөледі: префикс, кему, таг және мекенжай. Бұл өрістердің әрқайсысын дерек сөзінде сөздің қалған бөлігін өзгертпей өзгерту үшін нұсқамалар бар, бірақ Store Tag нұсқаулығы IBM 704-те іске асырылмады. Lisp-тің бастапқы іске асырылуы тізбектелген тізімнің басы мен соңын сақтау үшін мекенжай және кему өрістерін пайдаланады. Бастапқы функциялар car ("тіркелгіштің мекенжай бөлігінің мазмұны") және cdr ("тіркелгіштің кему бөлігінің мазмұны") осы өрістердің атымен аталды.
Жады және шеткі құрылғылар
704-ке келесі басқару элементтері кіреді: бір 711 перфокарта оқу құралы, бір 716 алфавиттік принтер, бір 721 перфокарта жазу құралы, бес 727 магниттік таспа блогы және бір 753 таспа басқару блогы, бір 733 магниттік барабан оқу және жазу құралы және бір 737 магниттік ядролық сақтау блогы. 704 өзі 36 түрлі басқару коммутаторы немесе батырмасы бар басқару консолімен және әрбір бит үшін бірден регистрлік 36 дерек енгізу коммутаторымен бірге келді. Басқару консолі негізінен тек регистрлердің екілік мәнін коммутаторлармен орнатуға және регистрлердің екілік күйін көптеген кішкентай неон шамдарының үлгісінде көруге мүмкіндік береді, бұл қазіргі заманғы LED шамдарына ұқсас. Компьютермен өзара әрекеттесу үшін бағдарламалар бастапқыда консоль емес, перфокарталарға енгізілетін болды, ал адам оқи алатын нәтиже принтерге бағытталатын болды. IBM 740 катодты сәулелі түтік шығару құрылғысы да қол жетімді болды, ол 21 дюймдік векторлық дисплей, адам көру үшін 20 секундтік өте ұзақ фосфорлық тұрақтылық уақытымен, сондай-ақ үлкен дисплеймен бірдей сигналды алатын, бірақ қоса берілген камерамен суретке түсіруге арналған тез ыдырайтын фосформен 7 дюймдік дисплеймен бірге келді. 737 магниттік ядролық сақтау блогы RAM ретінде қызмет етеді және 4096 36 биттік сөзді, яғни 18 432 байтқа тең көлемді қамтамасыз етеді. 727 магниттік таспа блогы бір барабанға 5 миллионнан астам 6 биттік таңбаны сақтай алады.
The 704 itself came with a control console having 36 assorted control switches or buttons and 36 data input switches, one for each bit in a register. The control console essentially allows only setting the binary values of the registers with switches and seeing the binary state of the registers displayed in the pattern of many small neon lamps, appearing much like modern LEDs. For human interaction with the computer, programs would be entered on punched cards initially rather than at the console, and human readable output would be directed to the printer. The IBM 740 Cathode Ray Tube Output Recorder was also available, which is a 21 inch vector display with a very long phosphor persistence time of 20 seconds for human viewing, together with a 7 inch display receiving the same signal as the larger display but with a fast decaying phosphor designed to be photographed with an attached camera. The 737 Magnetic Core Storage Unit serves as RAM and provides 4,096 36 bit words, the equivalent of 18,432 bytes. The 727 Magnetic Tape Units store over 5 million 6 bit characters per reel.
Сенімділік
IBM 704 өзінің алдыңғы үлгісі IBM 701-ге қарағанда әлдеқайда сенімді болды, оның орташа жұмыс істеу уақыты 30 минутқа жуық болды. Бірақ, IBM 704 вакуумдық түтіктерге негіделген машина болғандықтан, қазіргі стандарттармен салыстырғанда сенімділігі өте төмен болды. Орташа есеппен, машина 8 сағат сайын істен шығып, 1949 жылғы Манчестер Марк 1 машинасымен шамалас болды. Бұл, алғашқы Fortran компиляторларының сәтті аудара алатын бағдарлама мөлшерін шектеді, себебі үлкен бағдарламаны толық құрастырудан бұрын машина істен шығып қалатын.