Компьютер - вычисляющий автомат.

 

(В главное меню)

 

 

Т-270. Моделирование широко используется для решения самых разных задач в живой природе, в  технике и науке.

    Когда школьник строит модель автомобиля или парусной яхты, он приобщается к одному из величайших достижений человеческого разума, которое, как ничто другое, сделало человека великаном Речь идет о моделировании Живая природа взяла патент на моделирование очень давно, задолго до появления человека Не будем касаться самых первых успехов на этом пути Фантазируя и упрощая, попробуем представить, как появилась одна из моделирующих систем у некоторого вида рыб Предки этих рыб гонялись за пищей, за быстрыми инфузориями самым простым способом в каком месте увидит рыба инфузорию, туда и кидается Охота завершалась успешно, если инфузория оставалась на месте или уходила просто вперед - скорости у рыбы хватало Но когда инфузория уходила в сторону - рыба промахивалась, она должна была останавливаться и вновь искать глазами добычу, а та тем временем успевала уйти И вот на каком-то этапе рыбы научились моделировать движение инфузории, «включая» разные нейроны (нервные клетки) своего мозга Научились быстро «прокручивать» на модели весь процесс погони и выбирать направление своего броска так, чтобы в нужный момент прийти в «точку встречи»

    На Р-158. 1 система такого моделирования показана крайне упрощенно, примитивно, хотя, впрочем, изобразить ее точно и нельзя было бы конкретные механизмы моделирования в нервных сетях пока неизвестны

    Огромна роль моделирования в организации поведения (здесь «поведение» в самом широком смысле, а не в том, в котором оно фигурирует в школьном дневнике) живых организмов и особенно человека Играем ли мы в волейбол, отрезаем ли кусок хлеба, вытачиваем ли на токарном станке сложную деталь или просто прогуливаемся по саду, мозг непрерывно строит подробные модели, куда входит и внешняя обстановка, и состояние организма На этих моделях с огромной скоростью отрабатываются варианты действия, в соответствии с конкретной задачей выбирается один из них, а затем ^ке выдаются соответствующие команды и начинают действовать многие тысячи больших и малых мускулов В этой гигантской работе, которую мы, в общем-то, даже и не замечаем, участвуют миллиарды нейронов, а каждый из них сам по себе представляет собой сложнейшую машину

    Значение моделирования во всей человеческой деятельности огромно Понять что-либо - значит построить в своем сознании модель этого самого «что-либо» Что-нибудь изобрести - значит поработать с определенной мысленной моделью и извлечь из этой работы новую полезную информацию А если мы совершили неверное действие, значит, плохо проработали задач на модели или, что бывает значительно чаще, ошибочно построили саму модель

    Есть реальный мир, мир реальных вещей и явлений, мир звезд, атомов, табуреток, желтых осенних листьев, соседей по дому А есть отображающий эту реальность мир моделей, с которыми работает наша мысль Так вот, мир моделей должен соответствовать реальному миру, именно соответствие модели и реальности стоит за этим коротким и хрупким словом «правда» Бывает, человек говорит громким, уверенным голосом, что все, мол, обстоит так-то и так-то, но проходит некоторое время, и оказывается, что во всем он был не прав, что вся его красивая модель не отображала реальную действительность

    Модель всегда беднее реального объекта, она отображает лишь некоторые его черты Причем в разных случаях - разные, все зависит от задачи, для решения которой создается модель Так, например, чтобы оценить летные качества самолета, в аэродинамической трубе обдувают его модель, которая повторяет лишь внешние черты оригинала Занимаясь размещением пассажирских кресел, строят модель салона, не обращая внимания на внешние формы машины А когда диспетчер аэропорта организует последовательную посадку нескольких приближающихся самолетов, он представляет их себе просто движущимися точками, занимающими определенное место в пространстве Модели могут быть сделаны из самых разных материалов, описание реальности в них осуществляется на самых разных языках Модели самолетов бывают из дерева, металла или пластмассы, а бывают из бумаги и туши чертеж - это ведь тоже модель И рисунок тоже И фотография В нейронных сетях рыбы (Р-158, 1) модель строилась с помощью сложных электрохимических процессов в нервных клетках, а в системе управления ракетой (Р-153. 5) - с помощью электрических токов Еще один пример электрического моделирования-на Р-158, 2, здесь «задача встречи» решается для зенитной ракеты и самолета-мишени Движение самолета в этой модели отображается тремя меняющимися напряжениями-это координаты мишени потрем перпендикулярным осям х,у,z Напряжение, отображающее координатуz, остается постоянным, это значит, что самолет летит на постоянной высоте Тремя меняющимися напряжениями отображена возможная траектория зенитной ракеты, причем система управления пробует несколько разных троек (на рисунке для простоты показаны две из них, вариант А и вариант Б), выбирая такое направление, которое приведет ракету в «точку встречи» одновременно по всем координатам Электрическое моделирование используют во многих системах управления, работать с электрическими сигналами очень удобно Их легко менять, проверяя на модели самые разные ситуации Не так-то просто изменить размеры какой-нибудь детали на механической модели или la чертеже, а изменить тот или иной ток в электрической модели довольно просто

    Нынешнего своего могущества человек добился, подчинив себе энергию несравнимо большую, чем могут дать мускулы, и создав машины, которые стали продолжением человеческой руки Но началось все это с другого, с того, что, взаимодействуя с природой, сражаясь за существование, человек научился мыслить, научился создавать очень совершенные мысленные модели и работать с ними так, как не умеет никакой другой представитель животного мира А потом пошел дальше - научился создавать искусственные модели и на них отрабатывать свои практические задачи Такими моделями стали рисунки, слова устной речи, иероглифы, а затем и буквенное письмо географические карты, чертежи, графики И еще, конечно, математические модели, которые начались с простого счета и пришли к современной математике, умеющей моделировать самые сложные процессы в природе и машинах Рисунки Р-158, 3, 4, 5, 6, 7 иллюстрируют создание разных моделей простой электрической цепи, и уже из этого примера видно, насколько удобна и экономична математическая модель, в данном случае описание схемы с помощью нескольких формул закона Ома (Р-158, 7)

    Возможности математического моделирования резко расширились в последние десятилетия после появления электронных вычислительных машин, ЭВМ Эти машины умеют быстро перерабатывать огромные объемы информации, создавать и исследовать модели, выполненные не «в металле», а в виде чисел, прекрасно отражающих самую сложную реальность

Т-271. Для электронных вычислительных машин очень удобна двоичная система счисления.

    Почему мы пользуемся именно десятичной системой счисления, а не другой1? Почему, добравшись до 9, следующим шагом, добавляя к девятке единицу, считаем разряд полностью укомплектованным, пишем в нем 0, а перед нулем единицу (это значит, «есть одна полная десятка, один полный комплект») и переводим счет в самое начало следующей десятки1? Почему именно 10, а не какое-нибудь другое число, Не 6 и не 8, стало в нашем счете границей для перехода в следующий разряд1? Наверное, потому, что на руках у наших предков, изобретателей десятичного счета, было 10 пальцев и им просто удобно было сделать число 10 основой системы счисления А было бы у них 8 пальцев на руках, система получилась бы, наверное, восьмеричной досчитав до 7, мы переходили бы в следующий разряд и записывал бы нынешнюю нашу восьмерку как 10 (первый разряд полностью укомплектован, там полная восьмерка, пишем 0 и переходим во второй разряд, поставим там 1), девятку записывали бы как 11 (то есть 8 + 1), десятку - как 12 (то есть 8+2), 16-как 20 (два полных комплекта восьмерок), а восемь восьмерок, то есть наше десятичное 64 в восьмеричной системе записывалось бы как 100 (укомплектованы полностью и первый разряд и второй, переходим в третий)

    В принципе основанием для системы счисления можно выбрать любое число - какое удобней, такое и выбирай Для большинства электронных вычислительных машин выбрана двоичная система счисления (Р-159), в ней всего две цифры 1 и 0 И если после единицы нужно считать дальше, то есть если к единице надо прибавить следующую единицу, то нужно уже переходить в следующий разряд 1+1=10 (это наше десятичное 2), 10 + 1 = 11 (а это 3), 11 + 1 = 100 (десятичное 4), 100 + 1 = 101 (десятичное 5) и т д (Р-159, 2)

    На Р-159, 2 приведены таблицы пересчета некоторых чисел, записанных в привычной системе десятичного счета, в числа двоичной системы А рядом на Р-159, 3 приводится простой пример сложения двоичных чисел Нетрудно заметить, что правила арифметики для двоичных чисел очень просты, но вот запись этих чисел получается довольно громоздкой Например, если для записи числа «миллион» в десятичной системе нужно всего семь знаков, то в двоичной системе для этого уже понадобится двадцать знаков

    Но зато у двоичной системы есть другое достоинство-для нее нужно всего два разных типа знаков - 0 и 1, в то время как для десятичной системы нужно 10 разных типов знаков-0,1,2, 3,4, 5, 6, 7, 8, 9 Возможность пользоваться всего двумя знаками оказалась решающей для того, чтобы использовать двоичную систему в электронных вычислительных машинах Потому что огромное множество электронных схем - выключатели, триггеры, электронные реле, логические элементы И, ИЛИ, НЕ, мультивибраторы-работают в ключевом режиме, то есть находятся в одном из двух устойчивых состояний «включено-выключено», или «пропускаю ток-не пропускаю ток», или «даю напряжение - не даю напряжение» Одним из таких устойчивых состояний можно выразить единицу двоичной системы счисления, а вторым - нуль и таким образом использовать названные электронные элементы, как и многие другие, для выполнения операций с двоичными числами

Т-272. В машину двоичные числа вводятся в виде комбинаций электрических импульсов.

    Чтобы подробно рассказать об устройстве самолета, о том, как работают отдельные его агрегаты и системы, понадобилась бы, наверное, толстая книга, а то и многотомник Но можно обойтись и несколькими страницами, если не вдаваться в подробности, назвать лишь самое важное, что позволяет многотонной машине подниматься в воздух, летать и маневрировать на большой высоте Если изложить то, что принято называть принципом действия, и при этом, конечно, не бояться упрощений Прежде всего, наверное, нужно будет рассказать о крыльях если крыло определенной формы находится в потоке воздуха, то у него появляется подъемная сила Вспомните о таком летательном аппарате, как планер, который держится в воздухе только благодаря подъемной силе крыла Здесь необходимо будет пояснить главное - подъемная сила появляется, когда относительно крыла движется воздушный поток (или, наоборот, крыло движется относительно воздушного потока) А отсюда уже останется один шаг до двигателя, который создает движение самолета и тем самым обеспечивает появление подъемной силы

    В     заключение можно будет рассказать о том, как работают рули высоты и поворота Конечно, в такой ультракороткий рассказ не войдут многие интересные и важные подробности, например описание системы навигации или различных типов двигателей, не говоря уже о электропитании или автоматике тормозов, благодаря которой самолет с огромной скоростью (до 300 километров в час) ровно бежит по взлетно-посадочной полосе Что поделаешь, пытаясь коротко рассказать о главном, о принципах, приходите я жертвовать деталями, даже интересными и важными

    Нам предстоит познакомиться с принципом работы цифровых вычислительных машин, и с самого начала отметим, что ограничимся только одним основным их типом - тактовыми ЭВМ (иногда пишут ЭЦВМ - электронная цифровая вычислительная машина), работающими в двоичном коде В такой машине имеется генератор тактовых импульсов ГТИ, который выдает непрерывную очередь ровных прямоугольных импульсов, размеренно следующих друг за другом Тактовый генератор-это метроном, отбивающий ритм всей работы ЭВМ И не только метроном, но еще и работник, поставщик первичного сырья для всей машины из импульсов тактового генератора создаются последовательности двоичных чисел, импульс тока означает «единицу», а отсутствие очередного импульса на его обычном месте означает «нуль»

    На рисунке Р-160. 1, 2 показан процесс ввода в простейшуюусловную машину некоторого числа Все начинается с того, что оператор, получив десятичные числа, которые нужно сложить, превращает их в двоичные числа, которые переносят на бумажную ленту, определенным образом пробивая в ней отверстия Получается перфорированная, то есть дырчатая, лента, а сокращенно - перфолента, дырка в ней соответствует «единице», а отсутствие дырки, точнее, ее пропуск соответствует «нулю» Все это внешне делается очень просто оператор нажимает кпавиши перфоратора, набира заданное десятичное число, а из аппарата сразуже выходит перфолента с дырками и пропусками, которые соответствуют нужному двоичному числу

    Теперь нужно с перфоленты ввести число в машину, превратить его из определенной последовательности отверстий в такую же последовательность импульсов тока Эту задачу выполняет устройство ввода, используя в качестве сырья тактовые импульсы В нашем устройстве ввода есть игольчатый контакт, который, замыкаясь, открывает дорогу импульсу тока из генератора ГТИ дальше в машину Контакт этот, как видно из Р-160, 2, замкнут только в том случае, когда под иглой оказывается отверстие в перфоленте Поэтому последовательность импульсов и пауз в точности повторяет последовательность дырок и пропусков в перфоленте, то есть отображает двоичное число, которое как раз и нужно было ввести в машину, протягивая ленту

Т-273. Электронная схема "сумматор", манипулируя электрическими сигналами, может выполнять сложение двоичных чисел.

    Ввод чисел в машину, превращение их в комбинации электрических импульсов, конечно, не самоцель С числами н^жно работать, производить с ними различные математические операции И сейчас мы посмотрим, как можно произвести одну из них-сложение Чтобы сразу же не утонуть в подробностях, сделаем то, что реально никогда не делается пристроим к ЭВМ сразу два устройства ввода (Р-160. 3) и через каждое из них введем в машину одно из двух слагаемых Причем ввод начнем одновременно, как по выстрелу стартового пистолета И начнем вводить числа с конца, с последнего разряда, - здесь нет ничего удивительного, сложение «в столбик» мы тоже начинаем с конца, с последних цифр, и от них постепенно движемся влево, в сторону старших разрядов Обе серии импульсов, то есть оба наших слагаемых, одновременно подадим на сумматор, который и выполнит операцию сложения В попытке кратчайшим путем пояснить принцип работы ЭВМ мы все время идем на неслыханные упрощения, но вот сумматор будет представлен в истинном своем виде Во-первых, потому, что сумматор - один из основных элементов настоящих вычислительных машин Ну, а во-вторых, сумматор - прекрасный пример того, как с помощью электронных схем остроумно решаются конкретные задачи переработки цифровой информации

    Что должен делать сумматор? Он должен последовательно, разряд за разрядом (начиная с конца), скпадывать «единицы» и «нули» первого и второго слагаемого Причем здесь возможны такие четыре варианта 0+0,1+0, 0+1 и 1+1 Первые три операции прекрасно выполнила бы одна схема ИЛИ в первом случае на ее выходе не было бы сигнала, а во втором и третьем на выходе появлялся бы импульс И это как раз соответствовало бы известным правилам сложения 0+0=0, 1+0=1 и 0+1=1 Что же касается четвертого сочетания слагаемых, 1 + 1, то схема ИЛИ, конечно, не годится под действием двух одновременных импульсов на ее входах она дала бы один стандартный выходной импульс, что соответствовало бы операции 1+1=1 А нам н^жно, чтобы получилось 1+1=0 с переносом «единицы» в следующий разряд (Р-159. 3) Вот этот перенос «единицы» в следующий разряд оказывается довольно сложной задачей И решается она с помощью нескольких логических элементов, собранных по схеме Р-160, 4

    Здесь тоже все начинается со схемы ИЛИ - именно на ее вход одновременно подаются импульсы обоих слагаемых Но с выхода ИЛИ они идут на выход «сумма» не сразу, а через элемент И1 Как известно, схема И срабатывает только в том случае, если у нее на входе есть одновременно два сигнала, И1, И2 (Т-266) Это значит, что «единица» пройдет из ИЛИ через И1 на выход сумматора только в том случае, если на вход И1 вместе с этой «единицей» придет второй сигнал, в данном случае от логического элемента НЕ Посмотрим, в каких случаях это происходит

    Оба слагаемых подаются не только на ИЛИ, но одновременно еще и на элемент И2, а с него сигнал поступает как раз на интересующий нас элемент НЕ На Р-160. 4 показаны все возможные варианты суммирования двух одноразрядных чисел В первых трех случаях 0+0,1+0 и 0+1 элемент И2 не срабатывает, так как на его входе нет необходимых для этого двух - именно двух и только двух! - одновременных импульсов А значит, в этих случаях с И2 на элемент НЕ ничего не поступает, этот элемент не срабатывает, и на его выходе действует нормальное выходное напряжение Не забывайте, что элемент НЕ делает все наоборот сигнал на его выходе существует, когда на вход элемента ничего не подается (Р-154. 5) А когда на вход сигнал подается - на выходе элемента НЕ сигнал исчезает В итоге получается если на входах сумматора нет импульсов (0+0), то на его выходе тоже нет импульса-в этом случае на входе И1 действует только сигнал, поступающий с НЕ, а его одного недостаточно для срабатывания И1, элемент И2 пока не срабатывает, на его вход тоже ничего не поступает, если на входах сумматора появляется только один импульс (1+0 или 0+1), то на выходе «сумма» импульс появится-теперь на входе И1, кроме напряжения, как и прежде поступающего с НЕ, появляется еще один сигнал - с ИЛИ, этих двух сигналов, с ИЛИ и с НЕ, недостаточно для того чтобы сработал элемент И1, и на его выходе, то есть на выходе «сумма», появился импульс (1+0=1, 0+1=1), элемент И2 все еще не срабатывает на его входе один импульс, а этого мало, если на входах сумматора одновременно появятся два импульса (1+1), то на выходе «сумма» будет «ноль» хотя к И1, как и раньше, пройдет сигнал с ИЛИ, но исчезнет сигнал с НЕ Потому что под действием двух одновременных входных импульсов (1+1) сработает наконец И2 и при этом на входе НЕ появится сигнал, а на выходе исчезнет И таким образом из-за исчезновения сигнала на выходе НЕ не сработает И1, а значит, на выходе «сумма» окажется «ноль» Вот этого как раз мы и добивались, чтобы при появлении «единиц» одновременно на обоих входах сумматора на его выходе «сумма» был «ноль» Потому что 1+1=10, то есть в первом разряде при сложении должен появиться «ноль», а во второй н^жно перенести «единицу» «Ноль» на нужном месте у насеке появился, что же касается «единицы», то ее снимают с выхода «перенос», то есть с выхода И2, и направляют в линию задержки ЛЗ.Там эта «единица» ждет, пока на входах сумматора появятся импульсы или паузы следующего разряда (« ноль пишем, один в уме »), и в нужный момент добавляется к ним Чтобы решить эту задачу до конца, приходится собирать несколько более сложную схему, но это же, как говорится, детали Принцип действия сумматора остается без изменений выполняя определенные логические операции, он складывает любые двоичные числа, перенося при необходимости «единицу» в следующий разряд и безошибочно формируя последовательность импульсов и пауз, в которых отображен результат сложения, записана сумма двух чисел Если добавить к сумматору простейшее устройство вывода информации, например перо с электромагнитным приводом, то получится законченная электронная счетная машина для выполнения операции «сложение»

    Эта условная машина введена в наш рассказ с той же целью, с какой вводился планер в рассказ о самолете,-«для выяснения некоторых принципов» Но если честно, то наша примитивная машина в сравнении с настоящими ЭВМ-это даже не планер, а, наверное, не больше чем бумажный голубь И главное, принципиальное отличие нашего учебного компьютера от настоящих современных ЭВМ состоит в том, что в этих машинах имеется совершенная система автоматизации счета Именно эта автоматизация работы с числами придает электронным счетным машинам совершенно новые качества, позволяет им самостоятельно решать чрезвычайно сложные задачи

 

Т-274. Оперативная память, введенная для того, чтобы упростить выполнение арифметических операций, радикально меняет возможности компьютера.

    Счетная машина с сумматорами может производить не только сложение, но и вычитание, пользуясь для этого так называемыми обратными числами Обратное число получают из обычного двоичного числа, заменив все «нули» на «единицы», а «единицы» на «нули» Математики научились заменять вычитание прибавлением обратного числа с некоторыми дополнительными операциями, которые легко может выполнить суммирующая машина

    С помощью сумматора в принципе можно и умножать В нашей простейшей машине для этого н^жно вместо электромагнитного пера (устройство вывода информации) установить перфоратор Теперь полученная сумма будет представлена новой перфолентой (Р-161, 1), и для умножения эту перфоленту н^жно будет запускать на вход машины и свести умножение к последовательному сложению Применительно к десятичной системе это, например, может выглядеть так - 4x6=6+6+6+6= 24, последовательность действий 6+6=12, результат вновь подаем на вход машины и производим операцию 12+6=18, результат вновь подаем на вход машины и производим операцию 18+6=24 Подобным же образом легко выполнить суммирование нескольких чисел, например суммирование 2+7+4+5+1 произвести так 2+7=9, 9+4=13, 13+5=18 и, наконец, 18+1 = 19

    Конечно, суммировать несколько слагаемых или умножать таким способом довольно сложно, н^жно каждый раз получать перфоленту с промежуточным результатом, перебрасывать ее с выхода на вход и начинать повторное считывание В попытке упростить операцию умножения или многократного сложения мы сейчас введем еще один элемент, который, как потом выяснится, может вообще в корне изменить принцип работы машины, резко поднять ее математическую квалификацию Мы введем в машину память

Память вычислительной машины - это устройство, в котором можно записать определенную последовательность электрических импульсов, а затем в нужный момент воспроизвести эту последовательность, то есть извлечь число из памяти Перфолента, вообще-то говоря, тоже память, но память очень неудобная для оперативной работы с числами, мы сейчас придумаем что-нибудь получше Во-первых, для создания памяти ЭВМ можно использовать ^ке знакомую нам систему запоминания электрических сигналов - магнитную запись И н^жно сказать, что магнитная память, магнитная запись сигналов, широко используется в ЭВМ Сигналы записывают на широкой магнитной ленте, на магнитных барабанах или дисках, а в некоторых случаях даже на ленте в стандартных магнитофонных кассетах Во всех этих случаях устройство памяти в принципе очень напоминает обычный магнитофон Кроме того, в ЭВМ встречается память на магнитных элементах, она совсем не похожа на магнитную запись звука в магнитофонах, хотя в обоих случаях для запоминания электрических сигналов используется одно и то же явление-остаточная намагниченность Одна из разновидностей «запоминающих магнитиков» - цилиндрические магнитные домены, ЦМД Это микроскопические области внутри кристалла, их намагничивают и перемещают к считывающему устройству внешними магнитными полями, подобно тому как электрическими полями перемещают дырки внутри полупроводникового кристалла Память электронной вычислительной машины выполняют и на триггерах fT-181) Триггер может находиться в одном из двух устойчивых состояний, одно из них можно использовать для запоминания «единицы», второе - для запоминания «нуля» Широко используется итак называемая динамическая память Здесь запоминающий элемент - просто конденсатор Когда конденсатор заряжен, в нем записана «единица», когда разряжен - «ноль» А поскольку конденсатор постепенно разряжается, его все время подзаряжают В принципе это несложно машина тактовая и можно сделать так, что каждый тактовый импульс будет подбавлять немного энергии конденсаторам Но конечно, только уже заряженным, то есть только тем, которые помнят «единицу»

    Прежде чем говорить обустройстве памяти, несколько слов о том, что вообще может дать память счетной машине Во-первых, она может избавить от необходимости одновременно и синхронно вводить в машину оба слагаемых при их суммировании (Р-161) - слагаемые можно поочередно и не торопясь записать в память, а затем в момент их складывания одновременно направить из памяти прямо в сумматор При умножении можно записывать в память промежуточные суммы и для повторного суммирования извлекать их оттуда одновременно с нужным сомножителем Точно также можно хранить и любые другие результаты промежуточных вычислений и исходные данные, условия задачи, разного рода справочные сведения, например число «пи» или основание натуральных логарифмов В нужный момент все это можно вводить в вычисления или выдавать в виде справки

    И наконец, самое главное в память в закодированном виде можно ввести программу вычислений и доверить самой машине всю последовательность математических действий, то есть управление машиной можно доверить самой машине, автоматизировать вычисления На Р-162. 1 очень упрощенно показана схема, которая может запомнить четырехразрядное двоичное число Элементы памяти в ней-триггеры, увеличив их количество, можно запоминать любые большие числа, блок триггеров для запоминания одного числа образует ячейку памяти ЯП В процессе записи быстродействующий синхронный коммутатор СК1 во время каждого тактового импульса поочередно подключает к триггерам устройство ввода информации, в данном случае контакт-иглу, под которой движется перфорированная лента В исходном состоянии во всех триггерах правый транзистор открыт, и на его коллекторе напряжение равно нулю-все остается на нагрузке, левый транзистор закрыт, и на его коллекторе почти полное напряжение питания - на рисунках это отображено светящейся лампочкой Такое состояние триггера - правый транзистор открыт, левый закрыт - будем считать нулем (триггер запомнил 0), а второе его состояние - правый транзистор закрыт, левый открыт - будем считать единицей (триггер запомнил 1) Если с иглы поступит импульс на вход триггера, то он перейдет в Другое устойчивое состояние, а если импульс не поступит, триггер останется в прежнем состоянии Вот так каждый триггер запоминает «единицу» или «нуль», запоминает один из разрядов числа, которое вводится в память Теперь о том, как вспоминается нужное число

    Извлечение числа из памяти происходит с помощью элемента И, на один из входов которого подаются тактовые импульсы, причем одного лишь тактового импульса недостаточно для срабатывания элемента И Другой вход элемента И подключен к «своему» триггеру Если правый транзистор закрыт (триггер помнит 1), то с его коллектора снимается «минус»-второе напряжение, необходимое для срабатывания элемента И (Р-162, 4, 6) В этом случае из блока памяти выдается импульс - «единица» А если правый транзистор триггера открыт (триггер помнит 0), то на его коллекторе напряжения нет, элемент И не срабатывает и из памяти никакой импульс не выдается, что, как известно, соответствует «нулю» (Р-162, 3, 5)

    Считывание информации из памяти не меняет режима триггеров, они будут как угодно долго помнить число, которое в них записано Чтобы стереть информацию, н^жно все триггеры каким-то внешним воздействием вернуть в исходное состояние Кроме того, конечно, триггеры все забудут, если снять с них питание, например отключить вычислительную машину от электросети Когда вы вновь включите машину, то ничто не заставит триггер вернуться именно в то состояние, в котором он был перед выключением В этом состоит основной недостаток памяти на триггерах, в частности, в сравнении с магнитной памятью

    Машинную память, оперативно участвующую в вычислениях, например хранящую промежуточные результаты или числа, которые нужно вводить в сумматор, называют оперативной памятью А блок такой памяти - это оперативное запоминающее устройство, ОЗУ, как правило, оно сделано на триггерах Кроме того, в вычислительной машине есть ПЗУ, постоянное запоминающее устройство В него, в отличие от ОЗУ, ничего записать нельзя - все, что должно помнить ПЗУ (например, стандартные последовательности действий сумматора при умножении или вычитании), в него записано, «зашито» при изготовлении машины Запись какого-нибудь числа в ОЗУ и его считывание из ОЗУ и ПЗУ происходит очень быстро, на это уходят миллионные доли секунды Есть в машинах еще и внешняя долговременная память, чаще всего на магнитной ленте или на магнитном диске (Р-163) В долговременной памяти может храниться очень много информации, но, чтобы найти ее и считать из памяти, нужны уже не миллионные доли секунды, а секунды и минуты

    Элементы оперативной памяти объединяют в ячейки, в каждой ячейке столько элементов памяти, сколько разрядов может быть в числе, на которое рассчитана машина Так, например, для машины, рассчитанной на работу с двадцатиразрядными двоичными числами (в десятичной системе это могут быть числа до миллиона), нужны ячейки памяти, в каждой из которых 20 запоминающих элементов, например 20 триггеров

Т-275. Скромные труженики компьютера - электронные переключатели и дешифраторы - выполняют гигантский объем работ, обеспечивают четкое взаимодействие всех узлов ЭВМ, а в итоге саму возможность автоматизированных вычислений.

    Итак, в нашем распоряжении есть оперативная память на триггерах, но для введения ее в счетную машину н^жно еще создать реальный синхронный коммутатор Нужно, чтобы первый импульс попадал в первый элемент памяти и к моменту появления второго импульса контакт-игла уже была бы подключена ко второму элементу памяти И при считывании информации н^жно обеспечить своевременное переключение элементов памяти, причем очень быстрое, с частотой тактовых импульсов В современных ЭВМ частота тактовых генераторов-это мегагерцы, то есть миллионы импульсов в секунду При такой частоте синхронный коммутатор должен производить переключения за миллионные доли секунды, что совершенно неприемлемо для механических систем, таких, например, как телефонный шаговый искатель (Т-111) К счастью, были созданы чисто электронные схемы коммутаторов, которые, как и другие электронные схемы, могут работать очень быстро

    Одна из таких коммутирующих схем в упрощенном виде показана на Р-164 Ее основа-счетчик из двух триггеров, ТГ1 иТГ2, и четыре элемента И, каждый из которых работает на свой элемент памяти ЭП1, ЭП2, ЭПЗ и ЭП4 При этом у каждой схемы И - четыре входа, она срабатывает только в том случае, если на эти входы одновременно приходит четыре сигнала - и первый, и второй, и третий, и четвертый Один из этих сигналов - импульсы тактового генератора, они передаются на все И одновременно и синхронизируют их работу что бы там ни произошло, любое И будет срабатывать только в момент существования тактового импульса

    Итак, элементу И для срабатывания нужно четыре отпирающих сигнала, и один уже есть Два из трех оставшихся сигналов идут от триггеров, причем в такой комбинации, что на разные элементы И приходят разные пары отпирающих сигналов, разные комбинации напряжений, получаемых от четырех разных транзисторов В итоге получается, что к каждому из четырех И такие пары сигналов от триггеров приходят в разное время А это значит, что наши четыре схемы И поочередно готовы сработать и записать сигнал, каждая в свою ячейку памяти Но, конечно, для такого срабатывания, для записи сигнала в память, нужен сам этот сигнал - нужен четвертый по счету импульс на входе схемы И, он приходит с контакт-иглы, с устройства ввода, когда происходит считывание «единицы»

    Когда этот импульс-единица появится, то тут же произойдет запись «единицы» в элемент памяти Именно в тот элемент, на входе которого в данный момент действует «великолепная тройка» тактовый импульс и два импульса с триггеров Ну, а если в устройстве ввода в данный момент считывается «нуль», то в элемент памяти ничего не попадает, то есть в него и будет записан «нуль» А схема быстро подключит к устройству ввода следующий элемент памяти ведь это основная ее задача - поочередно подключать к устройству ввода элементы памяти, чтобы на них записывались «единицы» или «нули»

    Сумматор, оперативная память, быстродействующие коммутаторы - это, к сожалению, еще не все, что жизненно необходимо для электронной счетной машины Нужно еще научиться писать и читать адреса, которые исключают путаницу при пересылке чисел По этим адресам данное число будет записано в строго определенную ячейку памяти, а затем при считывании число будет безошибочно извлекаться только из той ячейки, из которой нужно, а не из какой-либо другой Для этого в память будет направлен запрос - адрес того числа, которое понадобилось в данный момент для вычислений Адрес записывают тем же способом, что и сами числа, то есть в виде определенной комбинации импульсов и пауз, а получатели чисел - сумматоры, ячейки памяти и другие - знают, что, скажем, первые четыре знака - это адрес числа, а само оно начинается только после этих четырех знаков (Р-165) Поэтому в арифметических действиях первые четыре знака не учитываются сделать это нетрудно, например выключив сумматор на первые четыре такта с помощью триггерного счетчика Запись адреса предназначена только для специальной схемы -дешифратора, задача которого разобраться в этой записи и направить число адресату

    В принципе дешифраторы работают просто, лишний раз демонстрируя, как красиво электроника умеет решать очень сложные, казалось бы, задачи На Р-165 показан дешифратор, который может сортировать шесть разных четырехзначных адресов и рассылать их шести адресатам Основа дешифратора-хорошо знакомые нам элементы И (Т-267), каждый из них срабатывает только в том случае, если на его входе одновременно действуют два сигнала А сигналы эти поступают на вход элементов И с трех триггеров, на которые через синхронный коммутатор подаются импульсы адреса В зависимости от комбинации этих импульсов адрес в разных сочетаниях устанавливает режимы триггеров, и эти сочетания как раз и определяют, какой элемент И сработает и куда пойдет число

    Настал момент подвести некоторые итоги Пытаясь упростить операцию последовательного сложения в суммирующей машине, мы ввели в нее оперативную память, быстродействующий коммутатор и систему адресов с дешифраторами И оказывается, что именно эти наши нововведения не только делают более удобной простейшую суммирующую машину, но и позволяют автоматизировать весь процесс вычислений, создать принципиально новый вид автоматов для переработки информации

    А сейчас от нашего «бумажного голубя», от условного компьютера, с элементами которого мы только что познакомились, попробуем перейти К реальной ЭВМ Но для этого нам предстоит провести еще одну подготовительную операцию

Т-276. Вычислительная машина может работать с числами, со словами и с рисунками.

    Как говорит само название, работа вычислительной машины состоит в том, что она вычисляет, производит различные математические операции с числами Но часто приходится решать задачи, которые удобне или, во всяком случае, привычней формулировать словами, хотя потом можно решать эти задачи, превратив слова в числа, то есть комбинации букв превратив в комбинации цифр Вот очень простые примеры, хотя, может быть, не самые удачные когда вы хотите по телефону узнать время, то набираете цифру «100», но нетрудно представить себе телефонный аппарат с клавиатурой, как в буквопечатающем телеграфном аппарате (Р-67. 4) - вы набираете на этой клавиатуре слова «Который час?», в результате чего появляются определенные комбинации электрических сигналов (Р-67, 5, 6), а не очень сложная электронная схема формирует из них сигналы, соответствующие цифре «100» в обычном телефоне Другой пример по заданной вами программе ЭВМ суммирует массу всех деталей автомобиля и определяет его общую массу, результат появляется на бумажной ленте, его выдает особый цифропечатающий аппарат, вы запомнили, что в машину вводилась масса деталей в килограммах, и, значит, суммарная масса тоже получится в килограммах, но можно было бы не обременять свою память, подключив к компьютеру аппарат, печатающий не только цифры, но и буквы, у каждой буквы свой код из «единиц» и «нулей», то есть из импульсов и пауз, в нужный момент машина 9 раз извлечет из памяти соответствующий код и рядом с цифрой ответа отпечатает слово «килограмм»

    Итак, кодируя буквы комбинациями импульсов и пауз, в ряде случаев для удобства можно вводить в машину слова или получать слова в ее ответах

    Теперь о рисунках Рассмотрим случай, когда машина решает незнакомую нам задачу - подсчитывает массу многоступенчатой ракеты, по мере того как она набирает высоту (Р-43. 3) масса уменьшается потому, что постепенно выгорает топливо и поочередно «отстреливаются» отработавшие ступени Машина выдает результат в виде двух колонок чисел в одной колонке высота, в другой-соответствующая ей масса ракеты Теперь введем в вычислительную машину загадочный пока электронный блокКД, который свяжет ее с телевизором

    В исходном состоянии электронный луч, который «зажигает» экран телевизора, «задавлен» большим запирающим напряжением, и поэтому экран не светится Снять это запирающее напряжение может электрический импульс, поступивший из блока КД,- в момент появления этого импульса электронный луч ударит по экрану и на нем появится светящаяся точка В каком месте1? В телевизоре генераторы развертки непрерывно двигают луч, и он строку за строкой прочерчивает весь экран (Т-253.Т-258) Поэтому место появления светящейся точки зависит оттого, в какой момент будет подан в телевизор отпирающий импульс из блока КД

    А теперь представьте себе, что в блок КД поступают результаты вычислений, те самые две колонки чисел «высота» - «масса» И каждое число, как некий код, управляет задержкой отпирающего импульса, а значит, местом появления светящейся точки Причем управляет так, что числа из колонки «высота» определяют положение светящейся точки в горизонтальном направлении, а числа из колонки «масса»-в вертикальном Так каждая пара чисел в определенном месте ставит светящуюся точку, точки сливаются в сплошную линию, и в итоге весь результат вычислений предстает на экране в виде графика Точно также, управляя «зажиганием» точек на экране телевизора, числа, поступающие из компьютера, могут рисовать схемы, чертежи, писать цифры и буквы Ведь что такое, скажем, написать букву «Т»? Для этого нужно одну под другой зажечь точки на нескольких соседних строках (вертикальная палочка буквы «Т») и зажечь несколько соседних точек на одной строке (горизонтальная палочка) Аналогично из сливающихся точек образуется и любая другая буква Порядок действий здесь может быть таким дешифраторы по сочетанию импульсов и пауз распознают код буквы (также, как они распознают адрес, Т-275) и включают соответствующую этой букве систему выдачи импульсов, которые и зажгут необходимый набор точек на экране Точно найти момент выдачи импульса и зажечь таким образом точку в нужном месте экрана в принципе не так сложно в телевизоре электронный луч прочерчивает строку примерно за 60 мкс.за это время тактовый генератор с частотой 10 МГц выдаст 600 импульсов, любой из них можно отсчитать с помощью триггерных цепочек, выделить и использовать в качестве отпирающего Даже на сравнительно большом экране точка будет при этом иметь размеры меньше миллиметра

    Устройство с телевизионным экраном для вывода информации из ЭВМ - это дисплей (от английского «ту дисплей» - «показывать»), его роль может выполнять и обычный телевизор с несложной приставкой Ну а блок КД - это контролер дисплея, система, управляющая им, целый специализированный компьютер, необходимый для того, чтобы сочетания импульсов и пауз на выходе ЭВМ мгновенно превращались в буквы и рисунки на экране дисплея

    Ближайшие родственники дисплея - это так называемые графопостроители по командам, полученным из машины, они перемещают по листу бумаги перо с электромагнитным управлением и вычерчивают графики, схемы или чертежи, вычисленные компьютером Вы, конечно, помните, что для того, чтобы не было мельканий картинки, все воспроизведенное на телевизионном экране нужно повторять 25 раз в секунду, с частотой кадров Удобно хранить весь кадр в оперативной памяти ЭВМ - оттуда его можно брать сколько угодно раз и в любой момент Но какой должна быть вместимость памяти для хранения кадра? Сколько в ней должно быть триггеров? И какой объем памяти нужно иметь для хранения в ней слов, закодированных двоичными числами?

    Чтобы оценивать что-либо количественно, нужно, как всегда, договориться о единицах измерения (Т-29) Количество информации принято измерять в битах, и эту единицу нам проще всего определить как один разряд двоичного числа, то есть одну единицу или ноль, один импульс или паузу Так, двоичное число 101110010111 содержит 12 бит информации, число 1101 -4 бита, двоичное число 1 -один бит В компьютерной технике и электросвязи чаще пользуются более крупной единицей информации 1 байт = 8 бит, а также производными единицами 1 килобайт = 1000 байт, 1 мегабайт = 1000 килобайт, 1 гигабайт = 1000 мегабайт Знак примерного равенства (=) понадобился потому, что каждая следующая единица не в 1000, а в 1024 раза больше предыдущей

    Чтобы определить количество информации, которую содержит газетная фотография, буква алфавита или книга, проще всего найти их эквивалент в виде двоичных чисел Можно, например, представить себе экран дисплея состоящим из 520000 точек (Т-256), каждая из которых может светиться (1) или быть темной (0) Чтобы точку за точкой описать состояние всего экрана, понадобится двоичное число, в котором 520 000 разрядов - цепочка из 520 000 единиц и нулей То есть картинка на экране содержит информацию 520000 бит = 65000 байт = 65 килобайт Заметьте, это в том случае, когда для описания каждой точки нужна информация всего один бит - «светится» или «не светится», 1 или 0 Если же у точки может быть несколько уровней яркости-«белый», «светло-светло-серый», «светло-серый», «серый» и т д - или несколько цветов, то объем информации одного кадра увеличится во много раз

    Двоичным кодом, как мы уже знаем, можно представить и буквы алфавита (Р-67, 6), в компьютерах это делается в принципе также, а в деталях несколько иначе, чем в телеграфии Существует такое соотношение двоичными числами, имеющими п разрядов, можно закодировать 2Ап объектов Так, скажем, трехразрядное двоичное число может иметь 2А3 = 2x2x2 = 8 «модификаций» - 000, 001, 010, 011,100,101,110,111 Эти восемь троек могут быть кодами, «этикетками» для 8 объектов, и каждый из них, представленный трехразрядным числом, будет нести 3 бита информации В нашем алфавите 33 буквы или 32, если смириться с тем, что буквы и и й или е и е будут иметь одинаковый шифр, то есть будут неразличимы Чтобы зашифровать, закодировать двоичными числами 32 буквы, нужны пятиразрядные двоичные числа, так как 2А5 = 32 При этом, чтобы записать в ОЗУ слово, скажем, из 10 букв, нужно 50 триггеров - они запомнят 10 букв по 5 бит информации (пятиразрядное число) в каждой

    В большинстве компьютеров букву алфавита кодируют не пятиразрядным, а восьмиразрядным числом, то есть тратят на букву не 5 бит, а 8 бит == = 1 байт На первый взгляд это может показаться ненужной расточительностью - восьмиразрядными числами можно закодировать 2А8 ==256 объектов, а букв всего 33 Но кроме строчных (маленьких) букв есть еще прописные (большие), есть примерно десяток знаков препинания, как правило, нужен и латинский алфавит, знаки арифметических и алгебраических действий и ряд вспомогательных знаков, таких, например, как № и другие Так что восьмибитового кода только-только и хватает

    Вот несколько иллюстраций, которые помогут почувствовать, что стоит за появившимися у нас единицами бит, байт, килобайт, мегабайт, гигабайт В этой книге на странице без рисунков в тексте примерно 3500 букв, то есть около 3,5 килобайта (из расчета 1 буква-8 бит, то есть 1 байт) В одном томе Большой советской энциклопедии 4-5 мегабайт, а во всей энциклопедии - более чем 200 мегабайт Если человек будет всю свою жизнь непрерывно по 18 часов в сутки говорить, то в записи всего, что он скажет, окажется около 20 тысяч мегабайт, то есть 20 гигабайт информации В каждом телевизионном кадре несколько сот килобайт, в часовой программе - несколько тысяч мегабайт, в небольшой газетной фотографии - сотня килобайт Этими сведениями завершается наша подготовка, и мы переходим к знакомству с реальной ЭВМ (Р-166)

Т-277. Основные узлы ЭВМ: процессор, оперативная, постоянная и внешняя память, устройства ввода и вывода информации, линии внутренней связи.

    В нашей условной ЭВМ есть сумматор - схема, которая умеет складывать два двоичных числа (Т-273) Кроме того, существуют схемы, которые могут выполнять и другие арифметические операции Так, в сумматоре можно выполнить вычитание, если одно из чисел заменить на обратное (например, вместо 1010 взять 0101) и выполнить еще кое-какие процедуры А обратное число легко получить с помощью элементов НЕ - они как раз и превращают 0 в 1 и 1 в 0 Если же записать двоичное число в цепочке триггеров, именуемой регистром, а затем управляющим импульсом сдвинуть это число на один разряд влево, то оно окажется умноженным на 2 (С-16) Пример число 110011 (десятичное 51) сдвигаем в регистре влево на один разряд и получаем 1100110 (десятичное 102) Два таких сдвига-это умножение на 4, три сдвига - умножение на 8 ит д Возможны и различные комбинированные действия, например, два сдвига и прибавление первоначального числа дают умножение на 5, суммирование результатов умножения числа на 8 и на 2 - это умножение данного числа на 10 Пример 4x10=4x8+4x2=40

    Все элементы компьютера, выполняющие арифметические операции и различные их сочетания, объединены в АЛУ - арифметико-логическое устройство Быстродействующие коммутаторы производят в АЛУ переключения, необходимые для выполнения заданной операции, а управляет коммутаторами поступающий в АЛУ код операции - двоичное число, которое распознают дешифраторы Командует всей этой системой устройство управления УУ, которое в свою очередь запрашивает из ОЗУ и получает оттуда, опять-таки в закодированном виде, программу вычислений И здесь работают неутомимые труженики - коммутаторы и дешифраторы Последние распознают поступающие из ОЗУ закодированные двоичными числами общие указания программы « сложить полученный в предыдущем действии результат с первым введенным числом », и УУ превращает эти общие указания в конкретные, направляемые в ОЗУ, ПЗУ и АЛУ команды « переключить АЛУ на режим сложения », « извлечь число из ячейки 011 011 ОЗУ и направить его на вход 1 АЛУ », « извлечь число из ячейки 010001 ОЗУ и направить его на вход 2 АЛУ », « произвести сложение », « результат направить в ячейки 101 101 ОЗУ », Все, что сказано здесь словами «извлечь», «направить», «произвести», сводится в итоге к очень четким и согласованным последовательным переключениям по сигналам отбивающего такт метронома-тактового генератора Руководит выполнением этих переключений безупречный диспетчер-устройство управления УУ

    Комплекс АЛУ-УУ есть главная действующая сила вычислительной машины Этот комплекс шаг за шагом, такт за тактом продвигает вперед вычисления, он так и называется - продвигатель, процессор (от латинского слова «процессус»-«продвижение») Ближайшие сотрудники процессора - ПЗУ и особенно ОЗУ Отсюда процессор может запросить инструкции на очередные свои действия, из ОЗУ он получает исходные данные и программу вычислений, сюда же, в ОЗУ, процессор направляет промежуточные и окончательные результаты Программа и исходные данные попадают в ОЗУ из устройства ввода, и отсюда же, из ОЗУ, окончательный результат уходит в устройство вывода

    Здесь, пожалуй, уместно сделать два важных сообщения

    Первое Из всего многообразия современных вычислительных машин мы выбрали для знакомства самую небольшую - микроЭВМ И даже более конкретно выбрана одна из разновидностей микроЭВМ - персональный компьютер, ПК (Р-166) В нем есть много такого, что можно встретить во всех других машинах, но есть, конечно, и свои особенности

    Второе В нашей условной машине (Р-160) импульсы и паузы какого-либо числа, также как импульсы и паузы адресов и команд, шли последовательно, друг за другом, напоминая короткие пулеметные очереди Но во всех современных машинах это, скорее, залпы из многоствольного миномета - импульсы и паузы какого-либо числа, адреса или команды рождаются, путешествуют и обрабатываются одновременно, параллельно, что, конечно, намного ускоряет все операции Если, например, машина работает с восьмиразрядными числами, то все ее узлы соединены восьмипроводными линиями (проводами), по которым одновременно движутся все восемь электрических импульсов и пауз данного числа («движется пауза» надо понимать так - по проводу в данный момент ничего не идет) Более того, внутренняя система связи компьютера-это три линии, как говорят обычно, три шины шина данных, шина адресов и шина управления И все это многопроводные линии, по которым одновременно идет и все целиком обрабатываемое число, и весь адрес, и вся команда управления Естественно, что такая система требует сложнейшей диспетчеризации и вместе с процессором работает несколько его помощников - контроллеров В их числе, например, контроллер клавиатуры, с которой вводятся исходные данные и программа, контроллер печатающего устройства - принтера, контроллер устройства внешней памяти на магнитных дисках и незнакомый нам контроллер дисплея, блокКД Важнейшая характеристика ЭВМ-объем ее оперативной памяти, и чем больше емкость ОЗУ, тем больше информации компьютер может «держать в уме», тем большими объемами данных может ворочать и более сложные задачи решать Емкость ОЗУ типичного персонального компьютера - 60- 200 килобайт, а большой ЭВМ - в сотни раз больше, десятки мегабайт Но как бы ни была велика собственная, внутренняя память ЭВМ, ею одной все равно обойтись нельзя   

    Компьютер - это универсальная вычислительная машина, ей обычно приходится решать сотни и тысячи разнообразных задач, работать по самым разным программам, для каждой из которых может быть множество конкретных частных условий Все это в ОЗУ, конечно, поместить невозможно да и не нужно Память машины делают двухступенчатой - имеется библиотека программ, типовых решений, информационных текстов и т п , и все это в стандартном виде, записано на магнитной ленте или на магнитных дисках Когда нужно, определенный кусок этих записей (специалисты говорят «файл»), например конкретную программу для расчета мостов или программу игры в шахматы, переписывают в ОЗУ Таким образом, хранившаяся на диске или ленте информация становится доступной процессору, он может свободно обращаться к ней, также как если бы эта информация была введена в компьютер с клавиатуры   

    В персональных компьютерах чаще всего используют гибкие магнитные диски небольших размеров - дискеты А «магнитофон», который их воспроизводит и записывает на дисках новую информацию, называется дисководом или, официально, НГМД-накопителем на гибких магнитных дисках Запись на диске ведется кольцами, чтобы быстро находить нужные куски и записи (файлы), каждый из них и имеет свой код Он поступает в контроллер НГМД, и тот с помощью шагового двигателя (вращается он не непрерывно, а мелкими шажками) подводит магнитную головку сразу к нужной дорожке

    На небольшом магнитном диске диаметром 133мм умещается 200-800 килобайт информации Это немало, но есть твердые диски, на Которых записывают десятки мегабайт, несколько томов энциклопедии Гигабайты информации, то есть сотни и даже тысячи таких книжек, как эта, могут уместиться на видеодиске, где с помощью тончайшего лазерного луча оставлены микроскопические следы, читаемые потом фотодиодами (Т-308)

Из приведенных на Р-166 основных узлов персональной ЭВМ нам остается назвать еще два - устройство ввода информации с клавиатурой и матричное печатающее устройство, принтер При нажатии на ту или иную клавишу в устройстве ввода электронные схемы-шифраторы-формируют и посылают в ОЗУ код соответствующей буквы, цифры или операции А в контроллере принтера (официально АЦПУ - алфавитно-цифровое печатающее устройство) стандартные коды букв и цифр преобразуются в другой код, который приводитв действие электромагниты печатающих иголочек, и они, ударив по бумаге, оставляют следы в виде точек Из этих точек постепенно складываются буквы и цифры (Р-166, 3)

    В конце этой краткой экскурсии по реальной ЭВМ н^жно признаться, что мы не обратили внимания на нечто чрезвычайно важное - на программы, по которым работает компьютер Попробуем исправить эту недоработку

Т-278. Наряду с "железом" - самой схемой и конструкцией ЭВМ - математические и интеллектуальные способности компьютера определяют созданные для него программы.

    Давайте посмотрим, как может решаться на машине какая-нибудь простая задача, скажем, вычисление суммы десяти чисел типа 1/п, где п = 1,2,3,4, , 10, то есть суммы ряда 1/1 + 1/2+1/3+1/4+ 1/10

    Ход решения этой задачи на ЭВМ иллюстрирует рисунок Р-167 На нем для простоты вместо двоичных чисел, которыми оперирует машина, показаны десятичные числа

    В оперативную память машины вводим всего два числа 1 и 10 Цифру 1 вводим сразу в две ячейки памяти-Я1 и Я2 При этом сразу же имеется в виду, что 1 в ячейке Я1 в дальнейшем будет числителем для любого члена ряда (1/п), а 1, записанная в Я2, будет первым нашим знаменателем п = 1 Мы будем постепенно "наращивать" его, добавляя каждый раз по единице, пока не доберемся до последнего п, равного 10

    Теперь введем в машину команды, им отводятся последние четыре ячейки памяти - Я6, Я7, Я8, Я9 (Конечно же, в нашем примере все чрезвычайно упрощено, много важных подробностей опущено, все решение задачи показано очень схематично ) В ячейку Я1 вводим первую команду К1 -«Число из ячейки Я1 (то есть 1) разделить на число из ячейки Я2 (то есть на п, пока у нас п = 1, получаем первый член ряда 1/1), результат направить в Я4, перейти к команде К2» Все эти указания извлекаются из Я6, где записана команда К1, и поступают в АЛУ- арифметико-логическое устройство, которое по указанным адресам извлекает из нужных ячеек числа и производит с ними заданные операции (на нашей схеме и это показано очень упрощенно) Кроме того, АЛУ посылает результат в заданную ячейку и включает следующую команду, предписанную программой В действительности всю эту работу выполняет процессор и, главным образом, его устройство управления Но для простоты весь процессор представлен на рисунке Р-167 его вычисляющим блоком АЛУ

    Команда К1, сделав свое дело, передает эстафету команде К2, которая должна прибавить вновь появившийся член ряда (ячейка Я4) к сумме всех предыдущих членов ряда, а она находится в ячейке Я5 У нас пока в этой ячейке пусто, наше - пока единственное слагаемое ряда Поэтому по команде К2 оно в одиночестве попадает в Я5 и будетждать там следующих членов ряда Потом к 1/1 прибавится - к их сумме 1/1+1/2=3/2 прибавится - к новой сумме 3/2+1/3=11/6 прибавится- и так далее Но это будет потом, а пока, выполнив команду К2, программа действует дальше После К2 программа начинает формировать следующий член ряда 1/п+1

    Прежде всего команда КЗ формирует новый знаменатель, выполняя операцию «Сложить число из ячейки Я2 (то есть п) с числом из ячейки Я1 (то есть с 1, получится п+1, на первый раз это 1+1=2), результат направить снова в Я2, стерев предыдущее число (п=1)» Последняя часть команды - обычная экономия число п = 1 уже не н^жно, оно^ке побывало знаменателем (1/1, команда К1), и, чтобы не занимать лишнюю ячейку памяти, 1 убираем из Я2 и помещаем туда 2, это к тому же упростит последующие действия, а именно выполнение последующей команды она найдет нужное ей новое число по знакомому старому адресу Я2

    Теперь можно было бы начать все сначала, с команды К1 найти член ряда - и прибавить его к предыдущей сумме Однако до этого нужно проверить, не пора ли кончать вычисления Поэтому после КЗ следует команда К4 «Сравнить число из ячейки Я2 (то есть п = 2) с числом из ячейки ЯЗ (то есть с числом 10), если п<=10, продолжить вычисления и перейти к команде К1 (в этом случае как раз и начнется новый цикл вычислений), если п>10 (это случится сразу же при п=11), прекратить вычисления, результат из ячейки Я5 (там находится последняя сумма всех предыдущих членов ряда, включая 1/10) направить в устройство вывода информации

    На Р-167 показаны первые три цикла вычислений и самый последний цикл, когда знаменатель дроби, постепенно увеличиваясь, достигает 11 Как видите, порядок действий машины очень прост выполняя деление, она находит очередной член ряда 1/п, прибавляет его к сумме всех предыдущих членов ряда, затем находит новый знаменатель п+1, затем опять находит новый член 1/п+1, опять прибавляет его к предыдущей сумме, опять вычисляет новый знаменатель (п+1)+1 ит д И всякий раз машина проверяет, а не стало ли очередное л больше 10, дальше которого считать не ведено

    Найти сумму ряда до п=10 несложно, буквально за несколько минут это можно сделать и «вручную» Но вот досчитать сумму ряда до п=100 или тем более до п=1000 не так-то просто, на это понадобились бы^ке не минуты, а часы А для машины посчитать наш ряд, например до п=1000, просто пустяк

    Решая такую простейшую задачу, машина сама по заданной программе проведет довольно большой объем работ, проделав в общей сложности 4000 основных операций (1000 делений, 2000 сложений, 1000 сравнений) и массу вспомогательных И на все это даже у очень небольшой современной ЭВМ ушли бы какие-то доли секунды Вот что такое автоматизация вычислений, путь к которой открыли нам электронные схемы - сумматор и другие схемы процессора, быстродействующие коммутаторы, дешифраторы, устройства памяти Vke говорилось, что возможности ЭВМ во многом определяются объемом ее оперативной памяти (Т-277) Другая важнейшая характеристика компьютера - быстродействие Еще, кажется, совсем недавно рекордом было несколько тысяч операций в секунду, а сегодня даже небольшая настольная ЭВМ выполняет в секунду 200-300 тысяч операций, средняя машина - несколько миллионов, а крупные суперЭВМ - сотни миллионов Дело подходит к скорости счета миллиард операций в секунду На машинах с высоким быстродействием можно одновременно решать десятки разных задач - каждый вычислитель или, как обычно говорят, пользователь, работает со своего пульта, своего терминала (дисплей, клавиатура, дисковод) Машина решает задачи по частям, молниеносно переключаясь с одной задачи на другую, так, что никто из пользователей и не замечает, что он не один

    Но главное, для чего нужно высокое быстродействие,-это решение очень сложных задач, быстрая обработка больших массивов информации Так, например, точность прогнозов погоды на 5-10 дней вперед заметно возрастает, если увеличить объем перерабатываемой информации о температуре, ветрах, давлении, влажности и т п , которую по нескольку раз в сутки собирают во многих тысячах точек земного шара Без ЭВМ, вручную, такие задачи вообще нет смысла решать-прогноз на 10 дней вперед придется рассчитывать несколько месяцев Даже нынешние быстродействующие компьютеры не успевают переработать всю информацию, какую хотели бы метеорологи

    Высокое быстродействие нужно для решения сложных научных и технических задач Например, для того, чтобы описать поведение плазмы в будущем термоядерном реакторе Или за разумное время рассчитать, детально проанализировать несколько вариантов большого железнодорожного моста и выбрать лучший из них Или оперативно и детально моделировать процессы в больших экономических системах Принцип построения нашей учебной программы (Р-167) примерно тотже, какой был на заре программирования,- это программа, как ее называют, в машинных кодах В ней указываются конкретные адреса, говорится, откуда взять число и куда направить, называются конкретные арифметические действия, которые нужно поочередно выполнять

    По мере усложнения решаемых задач такая система программирования оказалась слишком громоздкой, и появилось средство, упрощающее общение с компьютером,- языки программирования Сейчас таких языков сотни, если не тысячи ФОРТРАН, АЛГОЛ, БЕЙСИК, ПАСКАЛЬ, КОБОЛ, СИ, ЛИСП, ЛОГО и другие Все это языки разные и даже совсем разные, но главная идея у них одна - в языке имеются слова, которые вводятся в машину, например, с клавиатуры, эти слова, как любые введенные в машину сочетания букв, превращаются в строго определенный код, определенные сочетания импульсов-пауз, специальная вспомогательная программа превращает слова-коды в определенную последовательность конкретных команд и адресов, эта вспомогательная программа называется транслятором, переводчиком, она переводит указания, которые выдаете компьютеру на языке программирования, в указания на языке машинных кодов Если бы наша учебная программа была написана на каком-либо языке программирования то мы не выписывали бы по десять раз номера ячеек и все последовательности арифметических действий, а изложили бы общую схему вычислений, приписав в конце «Если п>10, прекратить вычисления и отпечатать результат, если п<=10, вновь перейти к первому действию» В языках программирования пишут, правда, намного короче и в большинстве английскими словами или сокращениями «GOTO А»-«перейти к действию Л», «IF n>10THEN В»-«если п>10, перейти к действию В», «PRINT SQR 100»-«извлечь квадратный корень из 100 и отпечатать результат», «DEL N5-N8» - «удалить из записи весь текст от 5-й строки до 8-й строки» и т д

    Язык программирования и компьютер - это не есть нечто независимое, существующее каждый сам по себе Машины ориентируются на определенный язык или максимум на класс языков, для каждого из которых должен быть свой транслятор или интерпретатор - программа перехода с одного языка на другой В принципе же различают две стратегии, два подхода к взаимодействию машины с программой, а значит, с пользователем В пакетном режиме машина получает отлаженную программу и сама доводит вычисления до конца Другой режим - диалоговый, когда, решая задачу по частям, машина не только выполняет ваши указания, но и обращает внимание на ошибки или неудачные действия, задает уточняющие вопросы, предлагает варианты дальнейших действий Именно в таком режиме работает ПК, персональные компьютеры, применительно к которым и появился термин «дружественное программирование» Общение с ПК может начинаться при самых начальных знаниях языка программирования Можно использовать ПК как справочник, деловой календарь или большую записную книжку, с его помощью можно редактировать тексты, из табличных данных получать многоцветные графики и при этом, изменив какую-либо величину, мгновенно видеть, как из-за этого изменяются все другие, связанные с ней Wee миллионы людей на собственном опыте почувствовали, как много рутинной, черновой работы берет на себя ПК и как просто и легко он находит точное наивыгоднейшее решение там, где раньше прикидывали на глазок Нельзя, конечно, разбрасываться торжественным словом «мыслить», но то, что делают современные ЭВМ, даже небольшие, позволяет называть их думающими машинами Но, конечно, ЭВМ - это всего лишь машина Общаясь с ПК на разговорном языке, мы, как ^ке упоминалось, всего лишь вводим в него слова, закодированные наборами двоичных цифр При этом компьютер требует абсолютной четкости, он не додумает, не догадается, что вы имели в виду, если что-то сказано нечетко Вплоть до того, что, если, набирая свой вопрос, вы сделаете лишний пробел между словами, машина вас не поймет и, скорее всего, попросит повторить вопрос. Программирование в минимальных дозах, особенно для работы с ПК, доступно каждому человеку И в то же время программирование - это большая наука и большое искусство, от него во многом зависит, что может сделать данный класс ЭВМ Это можно увидеть даже на нашем простейшем примере для суммирования последовательности 1/1+1/2+1/3 В программе для этой задачи можно было написать, чтобы машина сначала нашла все дроби, все слагаемые ряда, а потом начала их складывать Но при этом в памяти пришлось бы занять уйму ячеек, в то время как, работая по первой нашей программе, машина занимает всего 9 ячеек памяти Зачастую от программиста зависит не только экономичность и быстрота решения задачи, но и вообще сама возможность такого решения

    Цифровые электронные вычислительные машины в большинстве своем универсальны, они строят цифровые, математические модели, в которых можно отобразить самые разные процессы - от борьбы с микробами до рождения новых звезд Решают машины и простые житейские задачи, связанные с классификацией или поиском информации в больших ее массивах Можно, например, ввести в память машины, записать на магнитную пленку, данные нескольких тысяч деталей, а потом в нужный момент по определенному запросу мгновенно получить от машины нужную классификацию Скажем, перечень всех деталей из меди, или всех деталей стоимостью более 1 рубля, или всех деталей, которые проходят токарную обработку При решении такой задачи каждая характеристика детали также, как и сама деталь, имеет определенный код Машина, просматривая коды характеристик, сравнивает их с эталоном, например с кодом 10110111, что означает, «деталь из меди» В случае совпадения кодов машина считывает код детали, переводит его в название детали и передает на устройство вывода

    Великолепные программы, написанные для машин с высоким быстродействием и большими объемами памяти, позволяют им неплохо играть в шахматы Здесь каждая позиция и каждая фигура имеет свою количественную, цифровую оценку, свое число «баллов» И для машины игра - это обычная переработка цифровой информации Просчитывая партию, машина должна выбрать для себя наилучший вариант, тот, который дает ей наибольшее число «баллов» Просмотреть всю партию до конца, все ее варианты, не может ни одна машина И искусство программиста состоит в том, чтобы научить машину вместо бесстрастного перебора вариантов уже в самом начале оценивать и выбирать только те из них, над которыми стоит серьезно подумать Нужно сказать, что мощные машины с хорошими программами играют в шахматы очень хорошо

    Создание игровых программ тесно связано с такими важными практическими задачами, как машинный перевод с одного языка на другой, медицинская диагностика или поиск полезных ископаемых с помощью ЭВМ В этой последней области есть, кстати, немало замечательных достижений Вот лишь один из примеров Получив от геофизиков данные измерений, проведенных в разведочной скважине (естественная радиоактивность, плотность пород, их электропроводность и другие), и сопоставляя эти данные со своим опытом, машина иногда лучше самих геофизиков предсказывает, может ли быть в данном районе нефть

    И все это только начало Компьютеры существуют всего несколько десятилетий, их совершенствование также, как и совершенствование программ, продолжается очень быстрыми темпами Так что ждите новых приятных сюрпризов от наших теперь уже незаменимых помощников тродействующих вычислительных машин, умеющих делать то, что еще недавно считалось монополией Человека Разумного

 

(В главное меню)

Используются технологии uCoz