Главная Обратная связь Дисциплины:
Архитектура (936)
|
Хранится архитектура программы
Основные статьи: Компьютерная программа и компьютерного программирования Реплика из экспериментальной машины мелкомасштабные (SSEM), первый в мире компьютер, хранящий программу , в Музее науки и промышленности в Манчестере, Англия Этот раздел относится к наиболее распространенных RAM машин на базе компьютеров. В большинстве случаев, компьютерные инструкции просты: добавить одно число на другое, переместить некоторые данные из одного места в другое, послать сообщение некоторого внешнего устройства и т.д. Эти инструкции считываются из компьютера память и, как правило, осуществляется ( выполнен ) в порядке их дали. Тем не менее, как правило, специализированные инструкции, чтобы сказать компьютер, чтобы перейти вперед или назад в другое место в программе и вести выполнения оттуда. Они называются "Jump" инструкции (или филиалы ). Кроме того, инструкций перехода могут быть сделаны произойти условно , так что разные последовательности инструкций могут быть использованы в зависимости от результата предыдущего вычисления некоторых или некоторого внешнего события. Многие компьютеры непосредственно поддерживает подпрограммы , предоставляя тип прыжка, что "помнит" расположение это прыгнул с и другой оператор, чтобы вернуться в инструкции, которая следует этой инструкции перехода. Выполнение программы можно сравнить с чтения книги. В то время как человек, как правило, читать каждое слово и линию в последовательности, они могут время от времени вернуться назад к более ранней месте в тексте или пропустить разделы, которые не представляют интереса. Аналогичным образом, компьютер может иногда вернуться назад и повторить инструкциям в некотором разделе программы снова и снова, пока некоторые внутреннее состояние не будет выполнено. Это называется поток управления в рамках программы, и это то, что позволяет компьютеру выполнять задачи неоднократно без вмешательства человека. Для сравнения, человек с помощью карманного калькулятора можно выполнять основные арифметические операции, такие как сложение двух чисел с помощью нескольких нажатий кнопки. Но сложить все числа от 1 до 1000 займет тысячи нажатия кнопок и много времени, с практически полной уверенности совершить ошибку. С другой стороны, компьютер может быть запрограммирован, чтобы сделать это с помощью нескольких простых инструкций. Например: Как только сказали, чтобы запустить эту программу, компьютер будет выполнять повторяющиеся сложения задачу без дальнейшего вмешательства человека. Это почти никогда не сделать ошибку и современный ПК может завершить задачу в одну миллионную долю секунды. [ 41 ] Ошибки Основная статья: Программное обеспечение ошибка Фактическая первый компьютер ошибка, моли найден в ловушке на реле компьютера Harvard Mark II Ошибки в компьютерных программах называются " ошибки ". Они могут быть доброкачественными и не влияет на полезность программы, или есть только тонкие эффекты. Но в некоторых случаях, они могут вызвать программу или всю систему в " повесить "его недоступность для ввода, таких как мышь кликов или нажатий клавиш, чтобы полностью не получится, или крах . В противном случае доброкачественные ошибки могут иногда быть использованы для злого умысла недобросовестным пользователем написав эксплуатировать , код, предназначенный, чтобы воспользоваться ошибкой и нарушить надлежащее выполнение компьютера. Ошибки, как правило, не по вине компьютера. Поскольку компьютеры просто выполнить инструкции им дают, ошибки почти всегда результат ошибки программиста или недосмотру, достигнутом в разработке программы. [ 42 ] Адмирал Грейс Хоппер , американский ученый и разработчик первого компилятора , приписывают за то, что впервые использовал термин "ошибки" в вычислений после мертвого мотылька был найден короткое замыкание реле в Гарвардский Mark II компьютере в сентябре 1947 года. [ 43 ] Машинный код В большинстве компьютеров, отдельные инструкции хранятся в виде машинного кода с каждой команды время уделяется уникальный номер (его код операции или кода операции для краткости). Команда для сложения двух чисел будет иметь один код операции; команда умножить их будет иметь другой код операции, и так далее. Простейшие компьютеры способны выполнить любую из нескольких различных инструкций; более сложные компьютеры имеют несколько сотен на выбор, каждый с уникальным цифровым кодом. Поскольку память компьютера может хранить номера, он также может хранить коды инструкций. Это приводит к важному факту, что целые программы (которые просто списки этих инструкций) можно представить в виде списков чисел и сами могут манипулировать внутри компьютера таким же образом, как числовых данных. Фундаментальная концепция хранения программ в памяти компьютера наряду с данными они работают на этом и состоит суть фон Неймана, или хранится программа, архитектура. В некоторых случаях, компьютер может хранить все или некоторые из ее программы в памяти, которая хранится отдельно от данных она работает на. Это называется архитектура Гарварда после Гарварда Марк I компьютера. Современные компьютеры фон Неймана присущи некоторые черты архитектуры Гарвардского в своих проектах, таких, как в тайниках процессора . Хотя вполне возможно, писать компьютерные программы, как длинные списки номеров ( машинного языка ) и в то время эта техника была использована со многими первых компьютеров, [ 44 ] это очень утомительно и потенциально подвержены ошибкам делать это на практике, особенно для сложных программ . Вместо этого, каждый базового обучения можно дать краткое имя, которое является показателем его функции и легко запомнить - на мнемонические например ADD, SUB, MULT или прыгать. Эти мнемоники все вместе известны как компьютера ассемблере . Преобразование программы, написанные на языке ассемблера в нечто компьютер может фактически понять (машинный язык) обычно делается с помощью компьютерной программы под названием ассемблера. 1970 перфокарты , содержащий одну строку из FORTRAN программы. Карточка гласит: "Z (1) = Y + Ж (1)" и называется "PROJ039" в целях идентификации. Язык программирования Основная статья: Программирование Язык Языки программирования обеспечивают различные способы задания программы для компьютеров для запуска. В отличие от естественных языков , языки программирования предназначены не разрешить никаких разночтений и быть кратким. Они чисто письменными языками и часто трудно читать вслух. Они, как правило либо переведены на машинный код с помощью компилятора или ассемблера Перед началом обкатки или переведена непосредственно во время выполнения с помощью переводчика . Иногда программы выполняются с помощью гибридного метода двух методов. Языки низкого уровня Основная статья: язык низкого уровня программирования Языки машины и языки монтажные, которые их представляют (в совокупности называемые низкоуровневые языки программирования ), как правило, уникальны для конкретного типа компьютера. Например, ARM архитектура компьютера (например, можно найти в КПК или ручного видеоигры ) не может понимать язык машина с Intel Pentium или AMD Athlon 64компьютера, что может быть в ПК . [ 45 ] Языки высокого уровня Основная статья: язык программирования высокого уровня Хотя значительно легче, чем на машинном языке, писать длинные программы на ассемблере зачастую трудно, а также ошибок. Поэтому, большинство практических программы написаны на более абстрактных языков программирования высокого уровня , которые способны выразить потребности программиста удобнее (и тем самым помочь уменьшить ошибку программиста). Языки высокого уровня, как правило, "собранных" в машинный язык (или иногда на языке ассемблера, а затем в машинный язык), используя другой компьютерной программы называется компилятор . [ 46 ] языки высокого уровня менее связанные с работой на целевой компьютер, чем на языке ассемблера и более, связанное с языком и структуры задачи (ами), на решение которой окончательной программы. Поэтому часто можно использовать различные компиляторы перевести ту же программу на языке высокого уровня в машинный язык из многих различных типов компьютера. Это часть средств, которыми программное обеспечение, как видеоигры могут быть предоставлены для различных компьютерных архитектур, таких как персональные компьютеры и различных игровых консолей . Дизайн программы
Дизайн Программа небольших программ является относительно простым и включает в себя анализ проблемы, сбор входов, используя программные конструкции в языках, разработке или с помощью установленных процедур и алгоритмов, предоставление данных для устройств вывода и решения проблемы в зависимости от обстоятельств. Как проблемы становятся больше и сложнее, функции, такие как подпрограмм, модулей, официальной документации и новых парадигм, таких как объектно-ориентированного программирования встречаются.Большие программы, касающиеся тысячи строки кода и многое другое требуют формальные программные методологии. Задача разработки больших программных систем представляет собой значительную интеллектуальный вызов. Производство программного обеспечения с приемлемо высокой надежностью в предсказуемой графика и бюджета исторически было трудно; академические и профессиональные дисциплины программной инженерии концентрируется именно на этот вызов. Компоненты Основные статьи: центральный процессор и Микропроцессорные Видео, демонстрирующее стандартные компоненты "тонкий" компьютера Компьютер общего назначения состоит из четырех основных компонентов: арифметико-логическое устройство (АЛУ), блок управления , памяти, и устройства ввода и вывода (в совокупности называемые I / O). Эти части соединены между собой автобусов , часто из групп проводов . Внутри каждой из этих частей тысячи триллионы небольших электрических цепей , которые могут быть отключены или на посредствомэлектронного переключателя . Каждый контур представляет собой немного (двоичный разряд) информации, так что, если устройство находится на нем представляет собой "1", а когда от него представляет собой "0" (в положительном логического представления). Цепи расположены влогических элементов так, что один или более из схем может контролировать состояние одного или более из других цепей. Блок управления, АЛУ, регистры, и основной ввода / вывода (и часто другие аппаратные средства тесно связаны с этими) все вместе известны как центральный процессор (CPU). Ранние процессоры состоят из множества отдельных компонентов, но с середины 1970-х годов процессоры, как правило, построены на одной интегральной схеме называется микропроцессор . Устройство управления Основные статьи: дизайн процессора и блок управления Схема, как конкретная архитектура MIPS инструкция будет декодирован с помощью системы управления Блок управления (часто называется системой управления или центральный контроллер) управляет различными компонентами компьютера; он читает и интерпретирует (декодирует) инструкциям программы, превращая их в серию сигналов управления, которые активируют другие части компьютера. [ 47 ] Control системы в современных ЭВМ может изменить порядок некоторых инструкций для того, чтобы повысить производительность. Ключевым компонентом общей для всех процессоров является программный счетчик , специальная ячейка памяти ( реестр ), который отслеживает, какие места в памяти следующая инструкция должен рассматриваться с. [ 48 ] Функция системы управления заключается в следующем-примечание, что это упрощенное описание, и некоторые из этих шагов могут выполняться одновременно или в другом порядке в зависимости от типа процессора: 1. Чтение кода для следующей команды из клетки, указанном программного счетчика. 2. Декодирование числового кода для инструкции в набор команд или сигналов для каждой из других систем. 3. Увеличиваем счетчик команд теперь он указывает на следующую команду. 4. Читать все данные инструкция требует от клеток в памяти (или, возможно, от устройства ввода). Расположение этого необходимые данные, как правило, хранятся в коде команды. 5. Обеспечить необходимые данные для АЛУ или зарегистрируйтесь. 6. Если инструкция требует ALU или специализированное оборудование, чтобы закончить, проинструктировать оборудование для выполнения запрошенной операции. 7. Написать результат из АЛУ обратно в ячейку памяти или реестру или, возможно, устройство вывода. 8. Перейти к шагу (1). Так как счетчик команд (концептуально) только один набор ячеек памяти, оно может быть изменено путем расчетов, проведенных в АЛУ. Добавление от 100 до счетчика команд вызовет следующая инструкция для чтения с места 100 мест дальше по программе. Инструкции, которые изменяют счетчик команд, которые известны как «скачки» и позволяют петель (инструкции, которые повторяются на компьютере) и исполнения часто условного команд (обоих примерах из потока управления ). Последовательность операций, что блок управления проходит через обработать команду сам по себе как короткий компьютерной программы, и, действительно, в некоторых более сложных моделей процессоров, есть еще один еще меньше, компьютер называется microsequencer , который работает микрокода программу, заставляющую все эти события, чтобы это произошло. Арифметическое логическое устройство (АЛУ) Основная статья: Арифметика-логическое устройство АЛУ способно выполнять два класса операций:. Арифметические и логические [ 49 ] Набор арифметических операций, что конкретный ALU поддерживает может быть ограничена сложение и вычитание, или могут включать в себя умножение, деление,тригонометрические функции, такие как синус, косинус и т.д., и квадратные корни . Некоторые из них могут работать только на целых чисел ( целых ) в то время как другие используютс плавающей точкой для представления вещественных чисел , хотя и с ограниченной точностью. Тем не менее, любой компьютер, который способен выполнять только простейшие операции могут быть запрограммированы, чтобы сломать и более сложные операции на простые шаги, которые он может выполнять. Таким образом, любой компьютер может быть запрограммирован на выполнение любой арифметической операции, хотя это займет больше времени, чтобы сделать это, если его ALU напрямую не поддерживает операцию. ALU также может сравнивать числа и вернуться логические значения истинности (истина или ложь) в зависимости от того, идет ли равно, больше или меньше другого ("составляет 64 больше, чем 65?"). Логические операции включают булеву логику : И , ИЛИ , XOR и NOT . Они могут быть полезны для создания сложных условных операторов и обработки булевой логики . Суперскалярные компьютеры могут содержать несколько АЛУ, что позволяет им обрабатывать несколько инструкций одновременно. [ 50 ] процессоры Графика и компьютеры с SIMD иMIMD имеет часто содержат АЛУ, которые могут выполнять арифметические векторов и матриц . Память Основная статья: хранение данных компьютера Магнитный сердечник памяти был в памяти компьютера выбора течение 1960-ых, пока он не был заменен полупроводниковой памяти. Память компьютера можно просматривать в виде списка клеток, в которые чисел можно разместить или прочитать. Каждая ячейка имеет пронумерованный "адрес" и может хранить только один номер. Компьютер может быть поручено ", число 123 в клетку пронумерованы 1357" или "добавить номер, который находится в ячейке 1357 на номер, который находится в ячейке 2468 и положить ответ в ячейку 1595." Информация, хранящаяся в памяти может представлять практически ничего. Буквы, цифры, даже компьютерные инструкции могут быть помещены в памяти с одинаковой легкостью. Поскольку процессор не делает различий между различными типами информации, несет ответственность за в программном обеспечении, чтобы дать значение к тому, что память видит не иначе, как ряд чисел. Почти во всех современных компьютерах, каждая ячейка памяти настроен для хранения двоичных чисел в группы по восемь бит (называемыхбайт ). Каждый байт может представлять 256 различных номеров (2 ^ 8 = 256); либо от 0 до 255 или -128 до 127. Для хранения большего числа могут быть использованы несколько последовательных байтов (обычно два, четыре или восемь). При отрицательных чисел являются обязательными, они обычно хранятся в дополнения до двух обозначений. Другие механизмы возможны, но, как правило, не видели за пределами специализированных приложений или исторических контекстах. Компьютер может хранить любой вид информации в памяти, если она может быть представлена численно. Современные компьютеры имеют миллиарды или даже триллионы байт памяти. Процессор содержит специальный набор ячеек памяти, называемых регистрами , которые могут быть прочитаны и записаны в гораздо быстрее, чем основной области памяти. Есть правило, от двух до ста регистров в зависимости от типа процессора. Регистры используются для самых часто используемых элементов данных, чтобы избежать необходимости обращаться к основной памяти необходимо каждый раз данные. Поскольку данные постоянно работал над, уменьшая потребность для доступа к основной памяти (что часто медленно по сравнению с АЛУ и контроля единиц) значительно увеличивает скорость компьютера. Компьютер оперативной памяти поставляется в двух основных вариантах: оперативное запоминающее устройство или ОЗУ и ПЗУ или ROM. ОЗУ может быть считаны и записаны в любое время процессор команд, но диск с предустановленной данных и программного обеспечения, что никогда не меняется, поэтому процессор может только читать из него. ROM, как правило, используется для хранения Первый пуск в эксплуатацию инструкциям компьютера. В общем, содержимое оперативной памяти стираются, когда питание компьютера отключено, но ROM сохраняет свои данные на неопределенный срок. В ПК, диск содержит специализированную программу под названием BIOS , что дирижирует загрузке компьютераоперационную систему с жесткого диска в памяти, когда компьютер включен или сбросить. В встроенными компьютерами , которые часто не имеют диски, все необходимое программное обеспечение может храниться в ПЗУ. Программное обеспечение хранится в ПЗУ часто называют прошивки , поскольку это теоретически более, как аппаратные средства, чем программное обеспечение. Флэш-память стирает различие между ПЗУ и ОЗУ, так как он сохраняет свою информацию при выключении но также перезаписываемый. Это, как правило, гораздо медленнее, чем обычные ПЗУ и ОЗУ однако, поэтому его использование ограничено приложений, где высокая скорость не является необходимым. [ 51 ] В более сложных компьютеров может быть один или несколько RAM кэш памяти , которые медленнее, чем регистров, но быстрее, чем основной памяти. Вообще компьютеры с такого рода кэш предназначены для перемещения часто необходимые данные в кэш автоматически, часто без необходимости какого-либо вмешательства со стороны программиста. Вход / выход (I / O) Основная статья: Вход / выход Жесткие диски являются распространенными устройствами хранения информации, используемые с компьютерами. I / O является средством, с помощью которого компьютер обменивается информацией с внешним миром. [ 52 ] Устройства, которые обеспечивают ввод и вывод к компьютеру называются периферийные устройства . [ 53 ] В обычный персональный компьютер, периферийные устройства включают устройства ввода, как клавиатура и мыши , и устройства вывода, такие как дисплей и принтер . жесткие диски ,дисководы и приводы оптических дисков служить ввода и устройства вывода. Компьютерные сети является еще одной формой ввода / вывода I / O устройства часто сложные компьютеры в их собственном праве, с собственным процессором и памятью. Графический процессор может содержать пятьдесят или более крошечные компьютеры, которые выполняют расчеты, необходимые для отображения 3D-графики . [ править ]Современные настольные компьютеры содержат множество мелких компьютеры, которые помогают главный процессор при выполнении операций ввода / вывода Многозадачность Основная статья: Компьютер многозадачность В то время как компьютер может рассматриваться как работает один гигантский программу, сохраненную в его оперативной памяти, в некоторых системах необходимо создать видимость запуска нескольких программ одновременно. Это достигается за счет многозадачности т.е. имеющие компьютерную переключатель быстро работает между каждой программы, в свою очередь. [ 54 ] Одним из способов, с помощью которого это делается с помощью специального сигнала называется прерывание , которое может периодически вызывать компьютер перестает выполнять инструкции, где это было и сделать что-то еще вместо этого. По помнить, где он выполнял до прерывания, компьютер может вернуться к этой задаче позже. Если несколько программ работают "в то же время," то генератор прерываний может быть причиной нескольких сотен прерываний в секунду, в результате чего программа каждый раз переключаться.Поскольку современные компьютеры обычно выполнять инструкции на несколько порядков быстрее, чем человеческого восприятия, может показаться, что многие программы работают в то же время, даже если только один постоянно выполняется в любой данный момент. Этот метод многозадачности иногда называют "разделением времени", так как каждая программа выделяется "срез" времени, в свою очередь. [ 55 ] До эпохи дешевых компьютеров, основной использование для многозадачности было позволить многим людям одни и те же компьютер. Казалось бы, многозадачность вызовет компьютер, на котором переключение между несколькими программами, чтобы работать медленнее, в прямой пропорции к количеству программ он работает, но большинство программ проводят большую часть своего времени в ожидании медленных устройств ввода / вывода для выполнения своих задач. Если программа ждать пользователя нажать на мыши или нажмите любую клавишу на клавиатуре, то он не будет принимать "временной срез", пока случае его ждет произошло. Это освобождает время для других программ, чтобы выполнить так, что многие программы могут быть запущены одновременно без потери неприемлемы скорости. Многопроцессорная обработка Основная статья: Мультипроцессорная Cray разработал множество суперкомпьютеров, которые использовали многопроцессорных тяжело. Некоторые компьютеры предназначены для распространения их работу через несколько процессоров в конфигурации многопроцессорной, технику один раз, используемой только в крупных и мощных машин, таких как суперкомпьютеры , ЭВМ и серверов . Многопроцессорных имногоядерных (несколько процессоров на одной микросхеме) личные и портативные компьютеры теперь широко доступны, и все чаще используются в нижнем конечных рынках в результате. Суперкомпьютеры в частности часто имеют весьма уникальные архитектуры, значительно отличающиеся от базовой архитектуры, хранящий программу и с компьютеров общего назначения. [ 56 ] Они часто имеют тысячи процессоров, индивидуальные межсоединений высокоскоростные и специализированных вычислительных аппаратных средств. Такие конструкции, как правило, используется только для специализированных задач в связи с большим масштабом организации программы, необходимых для успешного использования большинство имеющихся ресурсов сразу. Суперкомпьютеры обычно видим использование в крупномасштабных моделирования , рендеринга графики икриптографии приложений, а также с другими так называемыми « ошеломляюще параллельных »задач. Сеть и Интернет Основные статьи: Компьютерные сети и Интернет Визуализация часть маршрутов в Интернете Компьютеры были использованы для координации информации между нескольких местах с 1950 года. Американских военных SAGE система была первым примером крупномасштабной такой системы, что привело к ряду специальных коммерческих систем, таких как Sabre . [ 57 ] В 1970-х, компьютерные инженеры научно-исследовательских учреждений по всей территории Соединенных Штатов начали связывать свои компьютеры вместе с помощью телекоммуникационных технологий. Усилия финансировалось ARPA (теперь DARPA ) и компьютерная сеть , что привело назывался ARPANET . [ 58 ] Технологии, которые сделали Arpanet возможного распространения и развивались. Со временем сеть распространилась за пределы академических и военных учреждений и стал известен как Интернет. Появление сетей участвуют переопределение природы и границ компьютера. Операционные системы и приложения Компьютерные были изменены, чтобы включать в себя возможность определять и доступ к ресурсам других компьютеров в сети, например, периферийные устройства, хранимой информации и т.п., как продолжение ресурсов отдельного компьютера. Первоначально эти средства были доступны в первую очередь для людей, работающих в высокотехнологичных сред, но в 1990-х распространение приложений, таких как электронная почта и World Wide Web , в сочетании с развитием дешевых, быстрых сетевых технологий, таких как Ethernet и ADSL увидел компьютерных сетей стало почти повсеместным. На самом деле, количество компьютеров, которые в сеть растет феноменально. Очень большая доля персональных компьютеров регулярно подключаться к Интернету, чтобы общаться и получать информацию. "Беспроводной" сети, часто используя сети мобильной телефонной связи, привело к тому, сетей становится все более повсеместным даже в мобильных вычислительных средах.
|