Съвременни компютърни системи
Ранни пресмятащи устройства
Още от дълбока древност човечеството е познавало различни изчислителни процедури, които днес наричаме алгоритми, и е използвало тези процедури за решаване на практически задачи.
Предписаните от процедурите действия (предимно аритметични операции) се извършвали на ум или с подръчни средства. С развитието на човечеството, се усложнявали решаваните задачи и съответните алгоритми. Освен това, сравнително прост алгоритъм може да затрудни човека, който го изпълнява, ако обемът на входните данни за алгоритъма е много голям. Не е трудно човек да намери най-голямото от 10 зададени числа, но задачата става непосилна, ако числата са хиляди или милиони. Затова учените започнали да обмислят създаването на специални технически средства за извършване на математически пресмятания.
Първите технически средства за улесняване на пресмятания са сметалата, създадени преди хиляди години в Средиземноморието. Най-популярни са били сметалата, при които за всеки разряд на числото – единици, десетици, стотици и т.н. – на пръчка са нанизани по 10 пула, с помощта на които се представят цифрите от 0 до 9 (Фиг. 1). До XVII век сметалата са единствените устройства, използвани за улесняване извършването на аритметичните операции – предимно събиране и изваждане, но и другите аритметични операции. В наши дни има хора, които бързо извършват пресмятания със сметала.
През 1614 г. шотландският математик Джон Непер използва „логаритъм“ за да сведе трудната за изпълнение със сметала операция умножение, към по-лесната – събиране, тъй като произведението на две числа е сума на логаритмите им. За целта, и до скоро, се използва остроумно приспособление – логаритмичната линия (Фиг. 2).
Аритмометри
Истинска революция в автоматизирането на аритметичните пресмятания представляват изследванията на френския математик Блез Паскал и поредицата създадени от него аритметични машини (аритмометри). Машината на Паскал (Фиг. 3) е предназначена за събиране и изваждане на естествени числа по класическия алгоритъм, цифра по цифра, чрез система от остроумно свързани зъбни колела, така че преносът от разряд в разряд се добавя автоматично.
По-късно Годфрид Вилхелм Лайбниц подобрява аритметичната машина на Паскал. Той въвежда подвижна част за задаване на множителя (спомнете си как, при умножаване изместваме всеки път с една позиция вляво произведението на множимото с цифра от множителя) и механизъм, който чрез едно завъртване събира двете числа, без да се налага последователното събиране цифра по цифра. С тези подобрения машината на Лайбниц извършва бързо четирите аритметични операции – събиране, изваждане, умножение и деление. Основните принципи на аритмометрите остават непроменени и до недалечното минало, като се усъвършенства само техническата им реализация.
В електромеханичните аритмометри задвижването се извършва от електродвигатели, а в съвременните аритмометри – електронните калкулатори (Фиг. 4), всички електро-механични части са заменени с електронни.
Обща характеристика на разгледаните аритмометри е, че те извършват само аритметични пресмятания и производителността на човек, работещ с калкулатор, не може да бъде много висока и е недостатъчна за изпълняване на сложните алгоритми, свързани с решаване на реални проблеми.
Машини с програмно управление
Следващата стъпка по пътя към създаване на съвременния компютър се основава на идея на френския инженер Жозеф-Мари Жакард. Той създава тъкачен стан с програмно управление.
Машина с програмно управление наричаме устройство, което може да изпълнява множество операции и е снабдено с механизъм за задаване на последователности от такива операции – програми. Машината с програмно управление следва указанията на програмата и автоматично изпълнява предписаните операции.
Програмите в стана на Жакард се нанасят на картонени ленти, на които, за всяка група от нишки, съответства пътечка. Пътечките се продупчват (перфорират) през определени интервали. По време на тъкането специално устройство проследявало перфолента и в зависимост от наличието или отсъствието на перфорация, поставяло в горно или долно положение групите нишки, съответстващи на дадена пътечка. Докато се работело над един вид десен, проектантите (програмистите) подготвяли перфоленти за друг десен. Със смяна само на перфолентите се постигало настройване на стана към различни десени, без каквато и да е друга промяна в конструкцията.
Нововъведението на Жакард предизвикало революция в тъкачната индустрия и не е загубило значението си и в наши дни. Най-важната характеристика на машините с програмно управление е възможността за бърза и лесна смяна на програмата.
Идеята да се създаде математическа машина с програмно управление принадлежи на английския учен-енциклопедист Чарлз Бабидж. През 1833 г. той започва работа над машина, която съчетава аритмометъра на Паскал/Лайбниц с програмното устройство на Жакард. Идеята за построяване на механичен компютър, нелишена от смисъл, за времето си е била обречена на неуспех, тъй като е невъзможно да се създаде толкова сложно съоръжение от зъбни колела, часовникови механизми, много метални и дървени детайли, движено от парна машина. Проектът на Бабидж бил завършен от шведския изобретател Пер Георг Шойц и му донесъл медал от Парижкото изложение в 1854 г.
През 1880 г. американският изобретател Херман Холерит успешно развил идеята за нанасяне на данни върху хартиени носители посредством перфорация. Машините на Холерит позволили да се извърши в рекордно кратък срок преброяването на населението на САЩ (над 62.6 милиона по онова време). Тези частични успехи поддържали надеждата, че гениалната идея на Бабидж за програмируема пресмятаща машина ще се реализира при достигане съответното ниво на технологичен прогрес.
Двоичната бройна система
Съществено за създаване на програмируема математическа машина, е революционното по същността си решение да се премине от десетична към двоична бройна система. Основание за това е фактът, че нито в природата съществува, нито науката и техниката са успели да създадат средство, с което може да се представят цифрите на десетичната бройна система. В същото време в природата съществуват метали, способни да се намират в две устойчиви и различими състояния – намагнитено и ненамагнитено. Две добре различими състояния можем да получим и в материал, провеждащ електричеството – когато по него тече ток, и когато не тече ток.
Основите на двоичната бройна система са положени от английския математик Джордж Бул. През 1847 г. той публикува статия, в която дефинира алгебрична система оперираща само с две стойности – „истина“ и „лъжа“, наричана днес Булева алгебра. Тя позволява всяка аритметична операция да бъде извършена от машина, когато операндите са представени в двоична бройна система. По този начин резултатите на Бул осигуряват единна математическа основа както за извършване на операциите с числа, така и за вземане на решения. С това, теоретичните предпоставки за създаване на универсална програмируема машина, са били налице.
Компютърът
Създаването на необходимите теоретични предпоставки не довежда автоматично до създаването на мечтаната от много учени, машина. Необходимо е било да се извърши още голяма по количество научно-изследователска и конструкторска работа, за да се достигне до построяването на машината, която днес наричаме компютър. Ето най-важните стъпки в технологично отношение:
🔴 През 1936 г. американският учен Клод Шенън, разработва принципите на създаване на електро-механични схеми, за извършване на операциите с числа.
🔴 През януари 1939 г. американецът от български произход Джон Атанасов (Фиг. 5), професор по физика в Университета на Айова, съвместно със сътрудника си Клифърд Бери, изработва машина, която днес се счита за първия реално действащ модел на компютър. Машината ABC на Атанасов-Бери е двоична, не е програмируема, но вместо електромеханични елементи използва електронни вакумни лампи, които консумират по-малко електрическа енергия, не предизвикват шум, много по-надеждни са, и с тях могат да се построят много по-големи и сложни пресмятащи устройства. Освен това ABC съдържала специално устройство, в което да се съхраняват не само необходимите за пресмятането данни, но и управляващата машината програма – памет. За съжаление, Джон Атанасов не е имал време да вгради в модела си такава, променяща съдържанието си, памет.
🔴 Едновременно с Шенън и Атанасов, над устройство за автоматизиране на пресмятанията в двоична бройна система и на електромеханичен принцип работи и германският инженер Конрад Цузе. Поради наложената от управляващите във фашистка Германия секретност, не е възможно да се посочи точно моментът на завършване на машината му Z1, но това е станало около началото на Втората световна война. Машината на Цузе също съдържа революционен елемент – тя работи със сменяеми програми, перфорирани на хартиени ленти. Можем да смятаме, че Z1 е първата реално действаща, програмируема изчислителна машина.
🔴 Група английски специалисти, занимаващи се по време на Втората световна война с дешифриране на германски радиограми, ръководена от гениалния математик Алън Тюринг, създава машината „Колос“. Тя е предназначена за дешифриране на радиограми (т.е. да изпълнява един конкретен алгоритъм), но е построена с електронни лампи – първата действаща електронна изчислителна машина. Освен това трябва да споменем теоретичните разработки на Тюринг, довели до математически модел, който става математическа основа за изграждането на универсалния компютър.
🔴 Създаденото от групата на Тюринг, бързо станало известно от другата страна на океана и по поръчка на военното министерство на САЩ, Джон Пресперт Екерт и Джон Моучли, създават през 1946 г. машината ENIAC (Electronic Numerical Integrator and Computer), използваща двоична бройна система, и построена с електронни лампи. В името й участвува и думата Computer, с която от тук нататък ще се обозначават подобни устройства. ENIAC не е програмируема и не използва паметта, както е замислено от Дж. Атанасов. Затова, след шумен съдебен процес от 1973 г., претенциите на Екерт и Моучли за авторство на компютъра, са отхвърлени, и първенството е дадено на Атанасов.
Фон-Ноймановият компютър
За осъществяване на следващия проект на Екерт и Моучли – компютърът EDVAC – към двамата се присъединява Джон фон Нойман. Математик с изключителна ерудиция и възможности, той слага последния важен щрих в историята на универсалния компютър. Не случайно приятелите му виждат пръст на съдбата в неговата фамилия, която в превод от немски означава „нов човек“. Той, както и Тюринг, си представял компютъра като универсален инструмент за научни изследвания, с практически неограничени възможности за решаване на задачи с алгоритмичен характер. В „Предварителен доклад за машината EDVAC“ (публикуван чак в 1954 г.) Джон фон Нойман по същество обосновава принципите на съвременния компютър.
Независимо от това, че повечето от тях не са формулирани за пръв път от него, и предизвикали спорове за авторство, в литературата те са известни като Принципи на фон Нойман, а компютрите, построени на тези принципи – като фон-Нойманови компютри.
Накратко ще формулираме основните характеристики на компютъра, които фон Нойман интегрира в цялостна концепция:
🔴 Компютърът е електронно устройство – всички операции в него се извършват от електронни схеми.
🔴 Данните в компютъра се представят в двоичен вид и всички операции се изпълняват над операнди, представени като числа в двоична бройна система.
🔴 Компютърът е устройство, което се управлява от програма. Програмите се състоят от инструкции, които могат да се изпълняват от предназначеното за целта устройство – процесор.
🔴 Програмите и данните се съхраняват в паметта. Процесорът извлича от паметта инструкциите, изпълнява ги с извлечените също от паметта данни и връща резултатите обратно в паметта.
Възползвайки се от противоречията между фон Нойман, от една страна, и Екерт и Моучли, от друга, относно приоритетите и правата над изобретението, английският изобретател Морис Уилкс през 1949 г. построява първия компютър, изграден изцяло върху принципите на фон Нойман – машината EDSAC.
От този момент започва ерата на компютрите, които са построени по една и съща принципна схема – архитектура на фон Нойман. На Фиг. 6 е показана тази принципна схема.
Въпроси и задачи
1. По какво аритмометрите на Лайбниц и Паскал се отличават от съвременните калкулатори?
2. Защо идеята на Жакард за програмно управление се счита за повратен момент в историята на създаването на компютрите?
3. Кой създава „двоична“ математическа теория, оперираща само с „истина“ и „неистина“?
4. Каква е връзката между „двоичната“ теория и идеята на Жакард за програмно управление?
5. Музикален инструмент издава 8 тона. Опишете устройство, което програмно да управлява такъв инструмент, като позволява да бъдат изсвирени едновременно по няколко тона.
6. Кой пръв започва да построява устройства, смятащи в двоична бройна система?
7. На кого принадлежи идеята за електронни изчислителни устройства?
8. Кой е създал първото изчислително устройство, работещо със сменяеми програми?
9. Коя е първата изчислителна машина, построена изцяло в съответствие с принципите на фон Нойман?